IT 썸네일형 리스트형 AsyncTask 사용중 java.lang.ExceptionInInitializerError 처리방법 안드로이드에서 AsyncTask 관련 문서를 보면 중요한 내용중에 하나가 분명히 Main Thread 에서 실행되어야 한다는 것입니다. 그런데 안드로이드 개발을 하다보면 UI스레드를 얻기위해서 항상 Context를 파라메터등으로 넘겨주고 하는 고생(?)을 매번하게 됩니다. 간단히 Handler를 이용하여 UI스레드를 획득하여 제목에서 보이는 예외를 피하는 코드를 만들어 보겠습니다. // UI스레드에서 작동됩니다. new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { UserDefineTask task = new UserDefineTask(); task.execute(); } }); 어딜봐도 Contex.. 더보기 jxl (Java Excel Library) 를 이용한 기존 xls 파일을 복사하여 사용하기 개발중 정리된 정보를 excel 파일로 변환하여 데이터를 추출가공하는 부분이 있어서 정리합니다. 일반적으로 사용할 엑셀파일을 서식과 포맷을 정의한 temp 엑셀파일을 생성해서 저장후 이를 꺼내서 데이터만 cell 에 입력하고, 이파일을 저장하는 방법으로 많이 사용하게 됩니다. (직접적으로 cell 단위 서식까지 신경써가면서 작업하기에는 코딩이 너무 많아 집니다.) 하여~ 서식이 정의된 temp 엑셀파일(temp.xls로 하겠습니다.)을 복사하여 사용하는 방법을 적어보겠습니다. 간단한 테스트 코드이므로 응용하는 방식은 개발자에 따라 달라질 수 있습니다. (여기서는 제가 진행한 안드로이드 코드를 기반으로 합니다.) 위에 보이는 같이 적당한 곳에 서식이 정의된 temp_log.xls 파일을 저는 assets .. 더보기 SimpleDateFormat 사용시 java.lang.ArrayIndexOutOfBoundsException 멀티 쓰레드의 부하가 많이 걸리는 부분에 SimpleDateFormat을 사용하여 날짜를 특정한 포맷으로 변환하는 과정에서 java.lang.ArrayIndexOutOfBoundsException 이 발생하는 경우가 종종 있다. 부하가 많지 않은 경우에는 발생하지 않기는 하는데, 이유는 SimpleDateFormat이 none thread safe 하다는 것이 이유였다. 다시 구글링하여 얻은 정보. 위와 같은 이유로 이미 멋진 라이브러리가 이미 공개되어 있고, datetime과 관련된 다양한 메소드를 추가적으로 제공하는 Joda-Time 이라는 라이브러리를 찾을 수 있었다. 사이트 링크 : http://joda-time.sourceforge.net/ 예외가 발생하던 코드 if (obj instanceof.. 더보기 Juno 4.2 에서 Kepler 4.3 버전으로 업데이트 주의!! '업데이트 상황에서 발생할 수 있는 오류는 모두 업데이트를 실행하는 본인에게 있습니다.' 오랜만에 Juno 이후 Kepler가 나와서 오랜만에 업데이트를 진행하였습니다. 보통 하루 날잡아서 새로운 eclipse를 내려받고 그동안 하위버전에서 사용하던 플러그인과 환경설정을 그대로 복사, 붙여넣기 하듯이 업데이트를 진행하였습니다. 이것도 나쁘지 않은 게, 이전에 사용하던 개발환경이 삭제하기 전까지는 유지가 된다. 롤백하기 쉽다. 이정도 입니다. 하지만 정말 시간을 많이 잡아먹는 일이기도 합니다. 그래서 구글링 eclipse update 4.2 to 4.3 정도로 검색을 해보니 많은 정보가 있고, eclipse.org 홈페이지에서도 제공하는 방법이 있어서 적어봅니다. 참조 : http://stacko.. 더보기 앱 process 종료하기 안드로이드 프로그램을 프로세스 수준에서 완전히 중지하는 방법을 검색해보니 대부분 killProcess 방식으로 처리하는 것이 대부분이었습니다. 권장하지도 않는 방법이고, 단순히 프로그램 완전종료를 위해서 별도의 퍼미션을 추가해야 한다던지(관심없는 사용자들이 대부분이지만 말입니다.) 그다지 좋은 방법으로 보이지 않습니다. 해서 이것저것 해보다가 일단 저에게 맞는 방법을 찾아서 몇자 적어봅니다. 아래 이미지와 같이 eclipse를 통해서 프로그램을 실행하고 각 기기에서 프로그램을 처음 실행한 엑티비티까지 모두 onDestroy()를 탄 상황임에도 불구하고, 모두 프로세스는 그대로 남아있습니다. 사용했던 메모리도 그대로 보존하고 있죠.. 이녀석들이 도대체 언제 내려갈지 아무도 예측할 수 없습니다. 이래저래 몇.. 더보기 subclipse 의 generate changelog 가 비활성인 경우 (로그 추출하는 방법) eclipse로 작업중인데 종종 subclipse에 commit하면서 자신이 작업했던 내역을 다른 곳에 저장해야 할 필요가 생기기도 합니다. 이런 경우 svn history에서 해당 로그를 선택하여 ctrl+c, v 가 되면 정말 편리(?)하겠지만 지원하지 않는 군요. 그래서 찾아본 것이 generate changelog라는 기능을 이용하자는 것이었습니다. 두둥!!! 근데 비활성화 되어 있군요... 이일을 어쩌나요 -_-;;; 남들은 다 된다는데 나만 안되네? 그래서 시작한 구글링. 그래서 찾은 답. 링크 : http://comments.gmane.org/gmane.comp.version-control.subversion.subclipse.user/15133 전세계에 퍼져있는 멋진 유저분들이 이미 같은 .. 더보기 DatePickerDialog 에서 일, 월, 년도 제거하는 방법 다음 소스코드를 먼저 보자. import java.lang.reflect.Field; import android.app.DatePickerDialog; import android.content.Context; import android.view.View; import android.widget.DatePicker; public class DialogDatePickerOnlyYear extends DatePickerDialog { private String TITLE = null; public DialogDatePickerOnlyYear(Context context, OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) { super.. 더보기 ViewPager에서 Bitmap또는 Drawable의 사용이 많은 경우 memory leaks crash를 처리하는 방법 이번에 이미지를 동적으로 많이 사용하는 프로그램을 제작하면서 ViewPager를 이용하여 순차적으로 보여주는 방법으로 처리를 하는 와중에 1024*768 정도의 이미지 12장을 ViewPager에 올리면서 메모리 오버플로가 발생하여 이리저리 해결방법을 찾아보았다. 효과적인 처리방법은 아니지만 일단 땜빵후 좀더 능동적으로 Bitmap/Drawable을 메모리에서 클리어하는 방법을 적용해 봐야 겠다. 일단 처리방법에 대한 간단한 설명 : ViewPager는 화면에 보이는 View와 화면에 보이지 않는 View에 대한 정보를 메모리에 올리는데, 화면에 보이지 않는 View를 미리 읽어오는 것을 몇개까지 할 수 있게 하는지에 대해 설정을 할 수 있다. 코드는 간단한다. // ViewPager를 초기화하는 부분에.. 더보기 이전 1 ··· 23 24 25 26 27 28 29 ··· 45 다음