본문 바로가기

프로그래밍/안드로이드

Can't create handler inside thread that has not called Looper.prepare() 에러발생시 해결방법 Can't create handler inside thread that has not called Looper.prepare() 에러발생시 해결방법 Thread나 Handler사용하다보면 아래과 같은 에러가 발생하면서 죽어버리는 경우가 종종발생합니다. Can't create handler inside thread that has not called Looper.prepare() 예를들어 아래와 같은 코드를 사용하였는데 위와같은 에러가 뜨면서 죽는다.new Thread(new Runnable() {public void run() {new Handler().postDelayed(new Runnable() {public void run() {//하고싶은 작업추가}}, 30);}}).start(); 그럼 밑에 .. 더보기
Error generating final archive: Found duplicate file for APK: AndroidManifest.xml 에러시 해결방안 Error generating final archive: Found duplicate file for APK: AndroidManifest.xml에러시 해결방안 안드로이드에서는 여러사람이 붙어 작업을 하다보면 특정 모듈에 대해 .jar파일로 받아 bulid include하여 작업할때가 있습니다.이럴때 간혹 빌드를 하면 아래와 같은 에러가 나올때가 있습니다. Error generating final archive: Found duplicate file for APK: AndroidManifest.xml 이유는 간단합니다. include된 .jar파일안에 AndroidManifest.xml이 포함되어서 발생된 문제입니다. AndroidManifest.xml을 삭제한 .jar을 받아 다시 빌드하시면 정상동작 .. 더보기
아이폰 스타일 안드로이드 토글버튼 아이폰 스타일 안드로이드 토글버튼 안드로이드를 개발하면서 아이폰의 가장 부러운것이 기본 UI디자인 입니다.이번에 필요했던것은 안드로이드에서 아이폰처럼 토글버튼이 슬라이딩효과를 주고 싶었던것이지요. 검색을 하다 괜찮은 곳이 있어 공유하려고 합니다.^^ 아래 링크를 따라가 보시면 풀소스가 있으니 참고하시기 바랍니다.^^https://github.com/pellucide/Android-Switch-Demo-pre-4.0 더보기
[안드로이드/Android] SharedPreferences Android SharedPreferences 안드로이드로 개발을 하시다 보면 간단한 String 문자열등 저장해야 할 경우가 생깁니다. 일반적으로는 DB를 써야하는데 DB를 쓰기에는 너무 간단하여 낭비다~~~ 라고 생각되신다면 요녀석 SharedPreferences를 추천합니다. SharedPreferences는 어플리케이션 내에 파일 형태로 저장된 녀석입니다. SharedPreferences는 파일 형태로 저장되다 보니 앱이 종료되거나 하더라도 지워지지 않고 유지가 된답니다. 앱을 지운다면 당연히 사라지게 되겠죠. SharedPreferences는 아래와 같이 위치하게 됩니다. 예를 들어 jwandroid.test.aaa 라는 패키지로 test_01 이라는 Sharedpreferences를 만드셨다면.. 더보기
[자바/Android] java.util.ConcurrentModificationException java.util.ConcurrentModificationException ConcurrentModificationException 는 대부분 iterator를 사용하는는 동안에 해당 iterator에 추가 삭제등을 시도하면 ConcurrentModificationException 이 발생합니다. iterator 가 부모의 내용이 변경되지 않는 것을 전제로 하기 때문인데, 이 때 Iterator 로 빼낼 객체의 clone 을 만들어서 사용하면 해결됩니다. Iterator it = ((ArrayList)list.clone()).iterator(); while(it.hasNext()) { it.remove(); } 위의 내용은 일반적으로 알려진 내용이구요. 근데 가끔씩 다른 상황에서 나오는 경우가 발생하는데.. 더보기
[안드로이드/Android] ImageView에서 ScaleType에 대해.. [안드로이드/Android] ImageView에서 ScaleType에 대해.. 이미지뷰의 속성중에 ScaleType라는 속성이 있습니다. 잘만 사용하면 참 유용한 녀석이죠. 상세보기 : http://developer.android.com/reference/android/widget/ImageView.ScaleType.html ImageView ScaleType는 ImageView 를 만들때 xml에서 설정할 수도 있고 java코드상에서도 설정이 가능합니다. 위의 링크를 따라 가보시면 아래와 같이 설명이 되어 있습니다. Enum Values ImageView.ScaleType CENTER Center the image in the view, but perform no scaling. ImageView.Sc.. 더보기
java.lang.IllegalArgumentException: View not attached to window manager java.lang.IllegalArgumentException: View not attached to window manager View not attached to window manager 는 안드로이드에서 다이얼로그를 다루다 보면 가끔씩 발생하는 녀석인데요... 주로 다이얼로그를 생성한 Activity가 소멸되고 난 이후에 해당 다이얼로그를 dismiss()할때 발생합니다. 저도 이곳 저곳을 찾아보니 대부분 다음과 같은 방법을 알려주더군요. 1. dialog != null 일때 dialog.dismiss()를 사용한다. 2. dialog.cancel() 을 사용한다. 하지만 저는 위에서 말한 2가지 모두 정상동작 하지 않고 에러가 발생하더라구요. 사실 답은 쉬운곳에 있었습니다. 바로 왜 java.l.. 더보기
[안드로이드/Android] 안드로이드 키보드 옵션 안드로이드 키보드 옵션 안드로이드를 개발하다보면 키패드 관련하여 여러가지 문제가 발생합니다. 예를 들면 화면이 전환될때 키보드가 자동으로 보여지게 하고싶다. 키보다가 안보이게 하고 싶다 등등. 이런경우 Activity가 활성화 될때 키보드 설정을 어떻게 하는지에 대한 정보 입니다. Values set here (other than "stateUnspecified" and "adjustUnspecified") override values set in the theme.ValueDescription"stateUnspecified"The state of the soft keyboard (whether it is hidden or visible) is not specified. The system will ch.. 더보기