-1

AsyncTask:バックグラウンドスレッドで可能なすべてのui操作を削除しましたが、5〜6回実行した後もそのような例外が発生しました。私を助けてください。

java.lang.IllegalStateException:アダプターの内容は変更されましたが、ListViewは通知を受信しませんでした。アダプタのコンテンツがバックグラウンドスレッドからではなく、UIスレッドからのみ変更されていることを確認してください。[ListView(2131427449、class android.widget.ListView)with Adapter .. ..

4

2 に答える 2

1

notifyDataChanged()またはスレッドrequestLayout();から呼び出してみてください。UI

于 2012-06-28T15:28:32.367 に答える
0

わかりました、それは動作します。進行状況の公開中にハンドラーを使用してアイテムを追加しました(つまり、AsyncTask +ハンドラー):

private void addAdapter(Item item)
{
    Message message = addhandler.obtainMessage();
    message.what = 1;
    message.obj = item;
    addhandler.sendMessage(message);
}

private Handler addhandler = new Handler() {
    public void handleMessage(Message msg)
    {
        switch (msg.what) {
        case 1:
            if (msg.obj != null) {
                _adapter.add((Item) msg.obj);
            }
            break;
        default:
            break;
        }
    }
};
于 2012-07-06T04:58:52.470 に答える