立即更新列表视图

时间:2013-11-21 04:50:53

标签: android android-listview


我有一个自定义列表视图。我想在用户输入新数据时更新此列表视图(我使用对话框插入数据)。我成功地通过致电

来做到了
    adapter.notifyDataSetChanged();

每件事都很好。唯一的问题是我希望我的数据(在列表视图中)立即更新,因为对话框解除了
{Listview(活动)和Dialog(简单类扩展DialogFragment)在两个单独的类文件中}。< br />
目前只有在用户输入数据后与listview活动交互时才会更新数据。有没有办法在对话框解散时立即调用onView of ListView活动(我将更新函数放在onResume中)。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你有一个带有ListView的活动A.活动A打开活动B.活动B有一个对话框。您希望在用户与对话框进行某些交互后更新ListView,对吗?

一种方法是在活动A adapter.notifyDataSetChanged()内调用onResume()(您正在使用的那个)。每次调用onResume方法时都会发生这种情况,即使没有要更新的内容也是如此。

另一种方法是让活动B向活动A发送消息,让他知道需要更新ListView。您可以使用startActivityForResultonActivityResult方法执行此操作。更多信息herehere

答案 1 :(得分:0)

我从上面的描述中推断出,您将活动A作为listActivity,活动B作为对话活动。在活动A中有一些触发活动B的按钮,并显示一个对话框。解雇要通知活动A的对话框。如果我的假设是正确的,我可以为您的问题找到解决方案。

请尝试以下任何一项:

  1. 在活动A的onWindowFocusedChanged()中,如果hasFocus值为true,则为notifyDataSetChanged();

  2. 活动A应订阅活动B,当内部活动B对话框被解除时,请调用活动A的观察者方法。

  3. 或者您可以通过调用传递请求代码的startActivityForResult来请求活动A启动活动B以获得某些结果。当活动B完成时,它将回调onActivityResult方法。