@Override
protected void onPostExecute(Pair < Boolean, Integer > result) {
Log.d("XXX", "Result : " + result.second);
if (isCancelled())
return;
if (result.second > 0)
nextPage();
notifyDataSetChanged();
if (result.first)
notifyMayHaveMorePages();
else
notifyNoMorePages();
};
我收到以下异常......
05-02 12:34:16.423:E / AndroidRuntime(12814):致命异常:主要 05-02 12:34:16.423:E / AndroidRuntime(12814): java.lang.IllegalStateException:适配器的内容有 已更改,但ListView未收到通知。确保 您的适配器的内容不会从后台线程修改,但是 仅来自UI线程。 [在ListView(2131034225,类 com.greenway.primemobile.common.SectionedListView)with Adapter(class android.widget.HeaderViewListAdapter)] 05-02 12:34:16.423: E / AndroidRuntime(12814):at android.widget.ListView.layoutChildren(ListView.java:1544)05-02 12:34:16.423:E / AndroidRuntime(12814):at android.widget.AbsListView $ FlingRunnable.run(AbsListView.java:4042) 05-02 12:34:16.423:E / AndroidRuntime(12814):at android.view.Choreographer $ CallbackRecord.run(Choreographer.java:749) 05-02 12:34:16.423:E / AndroidRuntime(12814):at android.view.Choreographer.doCallbacks(Choreographer.java:562)05-02 12:34:16.423:E / AndroidRuntime(12814):at android.view.Choreographer.doFrame(Choreographer.java:531)05-02 12:34:16.423:E / AndroidRuntime(12814):at android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:735) 05-02 12:34:16.423:E / AndroidRuntime(12814):at android.os.Handler.handleCallback(Handler.java:725)05-02 12:34:16.423:E / AndroidRuntime(12814):at android.os.Handler.dispatchMessage(Handler.java:92)05-02 12:34:16.423:E / AndroidRuntime(12814):at android.os.Looper.loop(Looper.java:137)05-02 12:34:16.423: E / AndroidRuntime(12814):at android.app.ActivityThread.main(ActivityThread.java:5041)05-02 12:34:16.423:E / AndroidRuntime(12814):at java.lang.reflect.Method.invokeNative(Native Method)05-02 12:34:16.423:E / AndroidRuntime(12814):at java.lang.reflect.Method.invoke(Method.java:511)05-02 12:34:16.423: E / AndroidRuntime(12814):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793) 05-02 12:34:16.423:E / AndroidRuntime(12814):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)05-02 12:34:16.423:E / AndroidRuntime(12814):at dalvik.system.NativeStart.main(原生方法)
答案 0 :(得分:2)
如果更改适配器中的任何内容,则需要为适配器调用notifyDatasetChanged()
答案 1 :(得分:2)
我知道这是一个迟到的回复....但我最近刚收到这个错误....我正在使用android-amazing-listview。我得到的结果与
相同(class android.widget.HeaderViewListAdapter)]).
对我有用的解决方案是&gt;
我认为这个问题源于getAdapter
返回AmazingAdapter
而不是包裹的HeaderListViewAdapter
导致计数有时不同的事实。我只是从AmazingListView中删除了getAdapter方法,并且从那以后就没有得到异常。
答案 2 :(得分:0)
您需要更新runonui线程内的UI,如下所示
runOnUiThread(new Runnable() {
public void run()
{
//Update UI here
}
});