與SimpleCursorAdapter
IllegalStateException異常「適配器的內容發生了變化,但ListView控件沒有收到通知」我有<code>ListView</code>
錯誤我得到: -
java.lang.IllegalStateException:適配器的內容已更改 ,但ListView未收到通知。確保您的適配器的 內容不是從後臺線程修改的,而是僅從修改的UI線程。 [ListView中(2131361944,類 android.widget.ListView)與適配器(類 com.pocketpharmacist.adapter.DrugClassesListAdapter)
當: -
在我Fragment
我已經啓用用適配器過濾,並過濾列表我得到了一個EditText
。
現在, 1)當我開始輸入文字過濾虛擬鍵盤來活着,並開始與列表
2),但過濾,真正的過濾來活着的時候,我隱藏Keybord。如果我點擊的listItem與keybord活着它給我上面的錯誤,這是顯而易見的,因爲數據不會反映到UI
將在深後,我認識了是例如我希望在我在EDITTEXT進入ABC列表搜索ABCDE現在,當我加入D它顯示我爲ABC過濾器,現在又如果我添加Ë它顯示我的過濾器ABCD,Buuut數據最初是在b中更改的ackground。這是錯誤的原因。
但我無法弄清楚如何解決這個
notifyDataSetChangedhas沒有影響,請大家幫我這個,任何提示或想法可以工作
聽到的是我的代碼
方法TextWatcher
public void afterTextChanged(Editable s) {
searchAdapter.getFilter().filter(s.toString());
searchAdapter.notifyDataSetChanged();
drugListView.requestLayout();
}
logcat的是如下
06-30 18:14:54.299: E/AndroidRuntime(6922): FATAL EXCEPTION: main
06-30 18:14:54.299: E/AndroidRuntime(6922): 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(2131361944, class android.widget.ListView) with Adapter(class com.pocketpharmacist.adapter.DrugClassesListAdapter)]
06-30 18:14:54.299: E/AndroidRuntime(6922): at android.widget.ListView.layoutChildren(ListView.java:1555)
06-30 18:14:54.299: E/AndroidRuntime(6922): at android.widget.AbsListView$CheckForTap.run(AbsListView.java:2840)
06-30 18:14:54.299: E/AndroidRuntime(6922): at android.os.Handler.handleCallback(Handler.java:587)
06-30 18:14:54.299: E/AndroidRuntime(6922): at android.os.Handler.dispatchMessage(Handler.java:92)
06-30 18:14:54.299: E/AndroidRuntime(6922): at android.os.Looper.loop(Looper.java:132)
06-30 18:14:54.299: E/AndroidRuntime(6922): at android.app.ActivityThread.main(ActivityThread.java:4028)
06-30 18:14:54.299: E/AndroidRuntime(6922): at java.lang.reflect.Method.invokeNative(Native Method)
06-30 18:14:54.299: E/AndroidRuntime(6922): at java.lang.reflect.Method.invoke(Method.java:491)
06-30 18:14:54.299: E/AndroidRuntime(6922): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
06-30 18:14:54.299: E/AndroidRuntime(6922): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
06-30 18:14:54.299: E/AndroidRuntime(6922): at dalvik.system.NativeStart.main(Native Method)
謝謝
沒有後臺線程在當前片段中 –