0

シナリオ: 友達のリストを表示するリストフラグメントがあります。リストアイテムが押されると、ダイアログフラグメントに友達の詳細が表示されます。

問題: ダイアログフラグメントで、(リモートサーバーの)友達リストから友達を削除するオプションがあります。私はこれを実行するために非同期タックを使用しています。ダイアログフラグメントから戻った後、「古い」フレンドリストを更新するにはどうすればよいですか。フラグメントの「リロード」をトリガーするにはどうすればよいですか。非同期タスクは、リストフラグメントで使用されているカスタムリストアダプターを認識しないためです。

申し訳ありませんが、コードをできるだけ早く追加します。誰かがこのシナリオに会ったことがあるなら、親切にあなたの提案を提供してください。

編集:リモートサーバーのフレンドリストからフレンドを正常に削除した後、リストフラグメントに表示されているリストをリロードしたいと思います。リストフラグメント自体でdataSetChanged通知をトリガーする方法はありますか?

4

2 に答える 2

1

したがって、ListView に ArrayList を設定します。

  • index = ListViewItemIndex をクリックして ArrayList から項目を削除します。
  • 使用しているアダプタで notifyDataSetChanged を呼び出します。
于 2013-01-04T07:24:07.397 に答える
0

問題ない。ListFragmentは何らかのデータソースから読み取っていると思います-ArrayAdapterまたはSimpleCursorAdapter(または同様のもの)-そしてあなたのタスクはそのソースも変更しています。がAsyncTask終了すると、そのフラグメントを取得して、基になるデータを更新できるようになります。例えば:

// ...
void onPostExecute(Void result) {
    ListFragment lFrag = (ListFragment) getFragmentManager().findFragmentById(R.id.yourListFragment);
    BaseAdapter adapter = (BaseAdapter) lFrag.getListAdapter();
    adapter.notifyDataSetChanged();
}
于 2013-01-04T07:26:17.827 に答える