반응형
(custom) ListView를 사용할 때
ArrayList<x> list;
Adapter ad;
list.add(xx);
처럼 동적으로 추가하면
ERROR/AndroidRuntime(28265): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131034121, class android.widget.ListView) with Adapter(class Leo.myCoupon.CouponAdapter)]
이런 에러가 났다..
몇시간동안 찾고
UI thread에서 돌아가게 할려고 handler도 써보고 RunOnUiThread도 해보고 했는데도
똑같은 계속에러가;
그러다 디버거를 돌려보니까 Thread1에서 돌았다. 결국, 다 UI Thread에서 돌고있었던거다;
UI Thread문제가 아니었다.
ArrayList<x> list;
Adapter ad;
ad.add(xx);
이런식으로 추가 했어야한다....
아니면
list.add(xx); 후에
ad.notifyDataSetChanged(); 로 알려줘도된다.
아마 list에 직접 추가되는것은 UI에 적용이 안됬던것이라 에러가 났었나보다
adapter를 통해 추가 시켜주면
자동으로 list에 추가도 해주고 UI도 업데이트 시켜주는듯 하다.
반응형
'Android' 카테고리의 다른 글
ExpandableListView 자동으로 열어보여주기 (0) | 2011.05.26 |
---|---|
안드로이드 예제들 (0) | 2011.05.04 |
achartengine에서 TimeBarChart 만들기 (5) | 2011.01.08 |
구글맵 맵상에서 거리구하기 (0) | 2010.11.24 |
failed to find provider info for settings (0) | 2010.11.17 |
댓글