패키지명으로 앱을 실행 할 수 있다. public static boolean openApp(Context context, String packageName) { PackageManager manager = context.getPackageManager(); try { Intent i = manager.getLaunchIntentForPackage(packageName); if (i == null) { throw new PackageManager.NameNotFoundException(); } i.addCategory(Intent.CATEGORY_LAUNCHER); context.startActivity(i); return true; }catch(PackageManager.NameNotFoundExcept..
AsynkTask를 쓰다보면 자주 만나는 에러다. Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. doInBackground에서는 UI 스레드에 직접 접근해서는 안되는데 발생한다. 즉, setText 같은 작업은 onPostExecute에서 처리 하도록 하자.
기본이 검정색이다. 흰색 및 다른 색으로 바꾸고 싶다면? 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..
날짜를 시스템 언어대로 표시할 수 있는 코드입니다. 예) 한국어: 2016년 4월 8일 금요일 English(US) : Friday April 8 2016English(UK) : Friday 8 April 2016 FORMAT_NUMERIC_DATE 플래그 적용시: 4/8/2016 Calendar c = Calendar.getInstance(); int flags = 0; if(formatdate != 0){ flags |= DateUtils.FORMAT_NUMERIC_DATE; } if(year) flags |= android.text.format.DateUtils.FORMAT_SHOW_YEAR; if(day) flags |= android.text.format.DateUtils.FORMAT_SHOW_..
AsyncTaks를 아래 방법으로 호출 하면 두 번 실행 하게 되는 효과를 발휘 한다. aAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR).executor(params); java.lang.IllegalStateException: Cannot execute task: the task is already running. aAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params) 요렇게 바꿔 줘야 한다.