2010-11-27 14 views
4
11-27 13:24:08.203: ERROR/AndroidRuntime(556): Uncaught handler: thread main exiting due to uncaught exception 
11-27 13:24:08.628: ERROR/AndroidRuntime(556): 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(2131165233, class android.widget.ListView) with Adapter(class com.bluepal.android.iConcierge.CustomAdapter)] 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.ListView.layoutChildren(ListView.java:1432) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.AbsListView.onLayout(AbsListView.java:1113) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.View.layout(View.java:6830) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1108) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.TableRow.onLayout(TableRow.java:121) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.View.layout(View.java:6830) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.TableLayout.onLayout(TableLayout.java:437) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.View.layout(View.java:6830) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.onLayout(LinearLayout.java:918) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.View.layout(View.java:6830) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.LinearLayout.onLayout(LinearLayout.java:918) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.View.layout(View.java:6830) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.View.layout(View.java:6830) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.View.layout(View.java:6830) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.ViewRoot.performTraversals(ViewRoot.java:996) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1633) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.os.Looper.loop(Looper.java:123) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at java.lang.reflect.Method.invoke(Method.java:521) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
11-27 13:24:08.628: ERROR/AndroidRuntime(556):  at dalvik.system.NativeStart.main(Native Method) 
+2

問題はかなりわかります: 'アダプタの内容は変更されましたが、ListViewは通知を受け取りませんでした。あなたのアダプターの内容は、バックグラウンドのスレッドから変更されていないことを確認してください。UIスレッドからのみ。 –

+0

コードは良いでしょう。 'Thread'、' AsyncTask'に関連するもの。 –

+0

あなたは解決策を見つけましたか? –

答えて

3

私はまだコメントすることはできませんが、私はあなたの問題を解決するかもしれませんが、私は答えとしてそれを置くでしょう。

非同期スレッドでダウンロードされた画像をリストビューに表示したときと同じ問題がありました。アイテム内をクリックして(そして他のアクティビティを開くことによって)同じことが起こり、すぐに戻ると、 ListActivity。

私が(明らかに)問題を解決するために行ったことは、アクティビティを停止して戻ったときにリストを再度表示するときにリストを非表示にすることでした。

@Override 
protected void onStop() { 
    super.onStop(); 
    getListView().setVisibility(View.GONE); 
} 

@Override 
protected void onRestart() { 
    super.onRestart(); 
    getListView().setVisibility(View.VISIBLE); 
} 

かなり簡単ですか?

お手伝いします。

関連する問題