サーバーと通信する Futuretask スレッドに応じて、arraylistを動的に設定/削除するアプリケーションを構築しています。
問題は、新しいオブジェクトをarrayadapterに追加し、何らかの方法でnotifyDataSetChangedまたはsetNotifyOnChangeを呼び出すときです
(たとえば、アイテムを追加した後、notifyDataSetChanged を呼び出す postadd 関数を作成しようとしたり、アダプター コンストラクターに setNotifyOnChange を追加しようとしたり、(adapter.setNotifyOnChange(true)) を追加する前に)
この Futuretask では、単にスレッドをフリーズさせ、アプリケーションの誤動作を引き起こします。ArrayAdapter の getView() を呼び出すために指でスライドするとき、notifyonchange がなければ機能しますが、これは望ましくない動作です。
注: 静的変数参照によってアダプターにアクセスしています。
注#2:新しいアダプターを何度も作成することは賢明な選択だとは思いません。
/編集:
私の削除方法は次のようになります。
public void remove (int itemid) {
for (ContactItem i : items)
if (i.ID == itemid)
items.remove(i);
}
(そして、最後のファランテシスで最後にぶら下がっています)