Android Application
私は自分のメソッドを使用しようとしていますnotifyDataSetChanged()
がArrayAdapter
、うまくいきません。
私は見つけたここでの答えとして、notifyDataSetChanged()
メインスレッドで実行されるはずですが、そのための例はありませんでした。
誰か例か少なくともリンクを送ってくれませんか?
ベストアンサー1
の場合ArrayAdapter
、はアダプタで、、、notifyDataSetChanged
を使用する場合にのみ機能します。add()
insert()
remove()
clear()
が構築されるとArrayAdapter
、渡された への参照が保持されます。アクティビティのメンバーList
である を渡し、後でそのアクティビティ メンバーを変更した場合、 は元の への参照を保持したままになります。アダプタは、アクティビティでが変更されたことを認識しません。List
ArrayAdapter
List
List
選択肢は次のとおりです:
- の関数を使用して
ArrayAdapter
、基になるリスト (add()
、、、など)を変更しますinsert()
。remove()
clear()
ArrayAdapter
新しいデータで再作成しますList
。(多くのリソースとガベージ コレクションを使用します。)- から派生した独自のクラスを作成し
BaseAdapter
、ListAdapter
基礎となるデータ構造の変更を可能にしますList
。 - リストが更新されるたびにを使用します
notifyDataSetChanged()
。UI スレッドで呼び出すには、runOnUiThread()
の を使用しますActivity
。そうすれば、notifyDataSetChanged()
が機能します。