Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用详细信息活动刷新列表视图的最佳实践 问题/讨论_Android_Listview_Android Recyclerview - Fatal编程技术网

Android 使用详细信息活动刷新列表视图的最佳实践 问题/讨论

Android 使用详细信息活动刷新列表视图的最佳实践 问题/讨论,android,listview,android-recyclerview,Android,Listview,Android Recyclerview,您认为以下情形的最佳解决方案(现在,2017年)是什么 您有一个列表,单元格包含一些数据: -名字 -星号表示项目是否在星号项目中 -地位 单击此列表项时,将转到详细信息页面,该页面位于此处 可以将该项目添加到您的星号项目和其他一些东西 这会改变状态 当您返回时,列表应得到更新,以便显示新信息 在名单上 这在Android应用程序中非常常见 我今天怎么解决这个问题 使用列表视图 列表数据在onResume功能中设置 到目前为止,这不是最好的解决方案。 那个么你们是如何在你们的应用程序中处理这

您认为以下情形的最佳解决方案(现在,2017年)是什么

您有一个列表,单元格包含一些数据: -名字 -星号表示项目是否在星号项目中 -地位

单击此列表项时,将转到详细信息页面,该页面位于此处 可以将该项目添加到您的星号项目和其他一些东西 这会改变状态

当您返回时,列表应得到更新,以便显示新信息 在名单上

这在Android应用程序中非常常见

我今天怎么解决这个问题
  • 使用列表视图
  • 列表数据在onResume功能中设置
到目前为止,这不是最好的解决方案。
那个么你们是如何在你们的应用程序中处理这个问题的,你们使用ListView、RecyclerView等等吗,。。。在哪里触发列表更新,

您需要做的是在您的
onResume()
中。对于第一个活动,您需要修改附加到ListView适配器的数据列表,然后调用
适配器。notifyDataSetChanged()


这里,mListOfData是传递给适配器的数据列表,而
fetchLatestData()
方法应该从您拥有的任何源获取最新数据。

启动“详细信息”活动时,请使用startactivityforesult。你知道它是怎么工作的,对吧?还将单击的列表位置保留在int字段中。如果该项目已添加到favs详细信息页面,请将结果设置为结果\确定。当您导航回列表活动时,在onactivityresult方法中检查结果是否正常。如果是这样,请修改该行列表数据(记住我们在int字段中保存了clicked position),并将更改通知适配器。在我的应用程序中,我使用一个管理器来处理数据。要使用数据、实现接口的所有视图都必须由管理员注册。如果要添加/修改/删除数据,必须在manager类中实现一些方法。在每个方法结束时,必须通知所有已注册的视图数据已更改


此链接上的示例代码:

我认为这实际上是他的当前解决方案。是的,这是我在一个项目中的当前解决方案,但我认为这不是最佳(实践)解决方案。
@Override
protected void onResume() {
    super.onResume();
    mListOfData.clear();
    mListOfData.addAll(fetchLatestData());
    mAdapter.notifyDataSetChanged();
}