基于异步任务结果更新ListFragment

时间:2013-01-04 07:12:49

标签: android android-fragments android-dialogfragment

情景: 我有一个显示朋友列表的列表片段。当按下列表项时,我将在对话框片段中显示该朋友的详细信息。

问题: 在对话框片段中,我可以选择从朋友列表中删除朋友(在远程服务器中)。我正在使用Async tack来执行此操作。从对话框片段返回后,我应该如何更新“旧”朋友列表。 如何触发片段'重新加载'。由于异步任务不知道列表片段中使用的自定义列表适配器。

抱歉,我会尽快添加代码。如果有人遇到过这种情况,请先提出建议。

编辑:从远程服务器中的好友列表中成功删除好友后,我想重新加载列表片段中显示的列表。有没有办法在列表片段本身中触发dataSetChanged通知。

2 个答案:

答案 0 :(得分:1)

因此,您将使用ArrayList填充ListView。

  • 使用index = ListViewItemIndex从ArrayList中删除Item 点击。
  • 在您正在使用的适配器上调用notifyDataSetChanged。

答案 1 :(得分:0)

没问题。我猜测ListFragment正在读取某些数据源 - 无论是ArrayAdapter还是SimpleCursorAdapter(或类似的东西) - 您的任务也在修改该来源。当AsyncTask完成后,您应该能够获取该片段并更新基础数据。例如:

// ...
void onPostExecute(Void result) {
    ListFragment lFrag = (ListFragment) getFragmentManager().findFragmentById(R.id.yourListFragment);
    BaseAdapter adapter = (BaseAdapter) lFrag.getListAdapter();
    adapter.notifyDataSetChanged();
}