본문 바로가기
[android] AlertDialog Ok, Cancel button dismiss 방지 코드 안드로이드, AlertDialog Ok, Cancel button dismiss 방지 코드 가끔 AlertDialog 에서 Ok 혹은 Cancel 버튼 등을 눌렀을 때 dialog 를 dismiss 하지 않고 싶을 때가 있다. 대표적인 경우가 dialog 를 통해서 어떤 input 을 받는데 validation 조건을 만족시키지 못해서 다시 입력하라고 할 경우! 이럴 때 OnShowListener 를 이용하여, 필요한 버튼에 OnClickListener 를 내 것으로 걸어주면 된다. final AlertDialog alertDialog = ....; alertDialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public v.. 2013. 9. 7.
[android] 허니컴( 혹은 ICS )부터 추가된 대표 기능들. 안드로이드, 허니컴( 혹은 ICS ) 부터 추가된 대표 기능들. 허니컴부터 타블렛을 위한 framework 로 돌변한 안드로이드.그리고 폰과 타블렛 공용으로 사용하게 된 framework 인 ICS. 이 때부터 새로운 녀석들이 등장하는데, 폰을 개발하던 태블릿을 개발하든 새로 등장한 component 들과 그에 따른 디자인 가이드들을 따르는 것이 중요하다. 어떤 녀석들이 추가되었는지 그냥 list up 해보았다. 자세한 것은 각자 찾아서 공부해보길~ 1. Fragment2. Actionbar3. Clipboard4. Drag and Drop5. Multi-choice List6. Content Loaders 7. Property Animation8. Search View Widget9. Renderscr.. 2013. 9. 7.
[android] font size, sp 와 dp 와의 관계는? 안드로이드. font size sp 와 dp 와의 관계는? 기본적으로 system 에서 font size 에 대한 touch 가 없다면, sp 와 dp 는 같은 값을 나타낸다. 하지만, system 에서 font size 를 바꿔버리면, 예를 들어 어르신 폰이라고 하여 큰 폰트를 지원하는 폰이라던지, 장애인을 위한 접근성 ( Accessibility ) 을 고려한 앱의 경우에는 font size 가 시스템적으로 커지게 되어있다. 여기서 바로 sp 와 dp 값의 차이가 발생하는데..sp 의 경우는 이 system font size 를 반영하여, 어르신폰의 시스템 설정에서 "글씨 크기 가장 크게" 등을 적용하면 이 큰 값이 적용되어 display 가 되는 것이고, dp 는 적용이 안된 sp 에 비하면 절대값.. 2013. 9. 6.
[android] Activity 가 아닌 곳에서 startActivity() 호출이 지양되는 이유. [android] Activity 가 아닌 곳에서 startActivity() 호출이 지양되는 이유. Activity Back Stack, Task 에 대한 추가 정보를 보고 싶다면 여기를 클릭! Activity 가 아닌 곳에서 startActivity() 를 호출하면 Exception 이 나곤 한다.이 때 Exception 정보에서는 FLAG_ACTIVITY_NEW_TASK 를 추가하라는 메세지를 담곤 한다.이는 안드로이드에서는 엑티비티를 stack 으로 관리하기 때문인데.. 서비스나 Broadcast 같은 경우는 task 가 아니기 때문에 Activity 를 어떤 스택에 쌓아야 할지를 모른다. 하지만 FLAG_ACTIVITY_NEW_TASK 를 사용하는 경우에는 새로운 테스크에 stack을 쌓기 때문.. 2013. 9. 4.
[android] ScrollView android:fillViewport 안드로이드, ScrollView android:fillViewport http://developer.android.com/reference/android/widget/ScrollView.html#setFillViewport(boolean) ScrollView 를 사용하게 되면 안쪽에 있는 Layout 이 wrap_content 의 형태로 assign 되어야 한다. 하지만 간혹가다 ScrollView 의 안쪽 layout 이 match_parent 의 형태가 되기를 바라는 경우가 있다. 이럴 경우에는 어떻게 해야 할까? 바로, android:fillViewport 값을 이용하면 된다. 이 값을 true 로 해주면, 안쪽에 있는 contents 를 view port 의 사이즈로 stretch 해준다. xml.. 2013. 9. 4.
[android] view 를 최적화시켜보자 ( Hierarchy Viwer & Pixel Perfect ) 안드로이드, View 를 최적화시켜보자 ( Hierarchy Viewer & Pixel Perfect ) 출처 : http://developer.android.com/tools/debugging/debugging-ui.html Optimizing Your UI ( UI 최적화하기 ) layout 때문에 앱이 느려질 수 있다.layout 에 관련된 debug 는 Hierarchy Viewer 와 lint tools 를 통해 할 수 있다. Hierarchy Viewer 는 layout 의 계층도를 보여주며, 각 node 가 얼마나 성능을 내는가를 볼 수 있다.그리고 Pixel Perfect window 를 통해 확대해 볼 수도 있다. lint 는 static code scanning tool 로 일반적으로 .. 2013. 9. 2.
[android] LBS ( Location Based Service ), GPS vs. WIFI vs. 3G 안드로이드, LBS ( Location Based Service ), GPS vs. WIFI vs. 3G GPS 위성을 이용한 위치정보 수신 시스템으로, 정확도가 높으나, 처리속도가 느리며, 배터리 소모가 많다. 오차 범위 : 0~10m 최대단점!! : 특정상황에서 처리속도가 현저하게 떨어지며, 아예 수신이 안 되는 경우도 있다. 오랜시간 GPS 신호를 놓쳤을 때 위치 정보 초기화 지연시간은 평균 2~15분. ( A-GPS 로 보완. )실내(콘크리트), 주머니 속 등에서는 아예 수신이 안 될 가능성이 높다.배터리 소모량이 꽤 크다. Wifi ( 무선 인터넷 ) 정확도는 낮은 편이나, 처리속도가 빠르고, 베터리 소모가 적다. 오차범위 : AP의 위치 정보와 신호 세기에 따라 오차범위 다양. 10m~500m.. 2013. 8. 22.
[android] Caused by: java.lang.NullPointerException at android.app.AlertDialog.resolveDialogTheme 안드로이드, Caused by : java.lang.NullPointerException at android.app.AlertDialog.resolveDialogTheme Caused by: java.lang.NullPointerExceptionat android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:148)at android.app.AlertDialog.(AlertDialog.java:104)at android.app.ProgressDialog.(ProgressDialog.java:77) 해당 이슈는 말 그대로 null pointer exception 인데 무엇이 null 이냐?AlertDialog 를 만들 때 전달하는 Context 혹은 Acti.. 2013. 8. 20.
[android] screen size 와 px, dp, config 에 대한 핵심 정리 안드로이드, screen size 와 px, dp, config 에 대한 핵심 정리 mdpi 320px X 480 px hdpi - mdpi 의 1.5배480px X 800 px 320dp X 533dp xhdpi - mdpi 의 2배720px X 1280 px360dp X 640dp Programmatically Best Resource 채택하기 Configuration config = getResources().getConfiguration();if (config.smallestScreenWidthDp >= 600)setContentView(R.layout.main_activity_tablet);elsesetContentView(R.layout.main_activity); Configuration 에.. 2013. 8. 20.
반응형