android.view.WindowManager$BadTokenException: Unable to add window — token android.os.BinderProxy@ is not valid; is your activity running? 보통 프로그래스 다이얼로그 띄우려고 하는데 발생 한다. 구글에서는 이런 에러를 이렇게 정의 하고 있다. 이 비정상 종료는 대개 앱에서 이전에 완료된 활동을 컨텍스트로 사용하여 대화상자를 표시하려고 시도하여 발생합니다. 예를 들어 활동이 종료되면 대화상자를 표시하려고 시도하는 AsyncTask를 트리거하지만 사용자가 작업이 완료되기 전에 활동에서 뒤로 이동하면 발생할 수 있습니다. 띄우려는 곳이 액티비티가 아니라면if(!((Activity) context).is..
Class not found when unmarshalling:Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack availableclass not found when unmarshalling startactivity 요런 에러가 막뜬다... 이럴 경우에multiDexEnabled true compile 'com.android.support:multidex:1.0.1' 등등을 하라고 한다.... 특정기기에서만 발생하는 거라... 참 어려운데.... 저런건 안 먹힌다... 결국 요상한 분석에 들어간다... StartActivity 에서 문제가있고... 인텐트로 데이터를 넘겨서 받을 때 ..
setDisplayShowHomeEnabled(boolean)' on a null object reference 에러가 발생한다면? 1. getActionBar() 대신 getSupportActionBar() 대신 를 사용하거나, extends Activity 대신 extends AppCompatActivity를 사용 2.setSupportActionBar()를 먼저 하지 않고, getSupportActionBar()를 사용 한 경우. Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); try { getSupportActionBar().setDisplayShowHomeEnabled(false); } ca..
기본이 검정색이다. 흰색 및 다른 색으로 바꾸고 싶다면? 1. 아이콘을 변경 한다. actionBarDrawerToggle.setDrawerIndicatorEnabled(false); Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_xxx, activity.getTheme()); actionBarDrawerToggle.setHomeAsUpIndicator(drawable); 또는 2. 색을 변경한다.2.1 Style 추가 @android:color/white 2.2 Item 추가@style/DrawerArrowStyle
라디오 그룹에 속한 라디오 버튼 속에서 체크 되어있는 아이템을 찾는 방법은 두 가지 1. RadioButton radioButton = (RadioButton)View.findViewById(mRadio_Group.getCheckedRadioButtonId()); 2. for (int i = 0; i < mRadioGroup.getChildCount(); i++) { RadioButton radioButton = (RadioButton)mRadioGroup.getChildAt(i); }
AlertDailog를 Create했다면 뭐든지 자동으로 안되는 것이 많다.그 중 하나가 키보드를 자동으로 띄우는 것인데 dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mFullPopUpEditBox, 0); } }); 위와 같이 리스너를 달아 놓아야 정확한 타이밍에 동작해서 키보드를 띄워 준다. 아무데나 키보드 띄우는 일 해봐..
XML을 코드에서 가져와서 사용 할 경우, layoutInflater.inflate 방법을 사용한다.하지만, 이 놈을 사용 하는 만큼 뷰를 계속 불러 온다. 10개의 뷰가 있는데 layoutInflater.inflate 코드가 실행 되면 getView를 통해 뷰를 하나씩 10번 불러 온다. 얼마나 낭비인가?그럼 어떻게? 간단하다. 이 놈을 사용 하게 될 경우 view가 null인지를 체크 한 뒤 사용 하면 된다. 원래 getView에 convertView가 있는데 public View getView(View convertView, ViewGroup parent) { if (convertView == null) { convertView = onCreateView(parent); } onBindView(co..