1
@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): FATAL EXCEPTION: main 05-02 12:34:16.423: E/AndroidRuntime(12814): java.lang.IllegalStateException: アダプタの内容が変わったがListView は通知を受け取りませんでした。アダプターのコンテンツがバックグラウンド スレッドからではなく、UI スレッドからのみ変更されていることを確認してください。[ListView(2131034225、class 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): 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:

4

3 に答える 3

2

アダプターのコンテンツを変更する場合は、アダプターを呼び出す必要がありnotifyDatasetChanged()ます

于 2013-05-02T08:10:16.937 に答える
2

返信が遅いことは知っています....しかし、最近このエラーが発生しました....私はandroid-amazing-listviewを使用していました。そして、私は同じエラーが発生しています

(class android.widget.HeaderViewListAdapter)]).

私のために働く解決策は->

この問題は、ラップされたのではなくgetAdapterが返され、時々カウントに違いが生じることに起因すると思います。AmazingListView から getAdapter メソッドを削除しただけで、例外は発生していません。AmazingAdapterHeaderListViewAdapter

于 2014-02-25T12:16:10.500 に答える
0

以下のように runonui スレッド内の UI を更新する必要があります。

runOnUiThread(new Runnable() {

public void run() 
{
    //Update UI here                        
}
});
于 2013-05-02T08:12:28.737 に答える