我有一个自定义列表视图。我想在用户输入新数据时更新此列表视图(我使用对话框插入数据)。我成功地通过致电
adapter.notifyDataSetChanged();
每件事都很好。唯一的问题是我希望我的数据(在列表视图中)立即更新,因为对话框解除了
{Listview(活动)和Dialog(简单类扩展DialogFragment)在两个单独的类文件中}。< br />
目前只有在用户输入数据后与listview活动交互时才会更新数据。有没有办法在对话框解散时立即调用onView of ListView活动(我将更新函数放在onResume中)。
答案 0 :(得分:1)
如果我理解正确,你有一个带有ListView的活动A.活动A打开活动B.活动B有一个对话框。您希望在用户与对话框进行某些交互后更新ListView,对吗?
一种方法是在活动A adapter.notifyDataSetChanged()
内调用onResume()
(您正在使用的那个)。每次调用onResume
方法时都会发生这种情况,即使没有要更新的内容也是如此。
另一种方法是让活动B向活动A发送消息,让他知道需要更新ListView。您可以使用startActivityForResult
和onActivityResult
方法执行此操作。更多信息here和here。
答案 1 :(得分:0)
我从上面的描述中推断出,您将活动A作为listActivity,活动B作为对话活动。在活动A中有一些触发活动B的按钮,并显示一个对话框。解雇要通知活动A的对话框。如果我的假设是正确的,我可以为您的问题找到解决方案。
请尝试以下任何一项:
在活动A的onWindowFocusedChanged()中,如果hasFocus值为true,则为notifyDataSetChanged();
活动A应订阅活动B,当内部活动B对话框被解除时,请调用活动A的观察者方法。
或者您可以通过调用传递请求代码的startActivityForResult来请求活动A启动活动B以获得某些结果。当活动B完成时,它将回调onActivityResult方法。