基于活动转换事件触发ListView的特定行内的图像刷新

时间:2016-11-25 17:48:10

标签: android listview

我在活动A中有一个自定义[["Person A", "Person B", "Person C", "Person D"], ["Wed Jun 29 12:30", "Thu Jun 30 13:45", "Thu Jun 30 13:46", "Fri Jul 1 15:40"]],每行包含一些ImageView和TextView。

首先,我使用ListView方法从活动A导航到活动B.我已成功通过startActivityForeResult()方法跟踪活动B到活动A的回报。

现在,当我返回时,我想触发特定ListView行中的一个ImageViews 的图像刷新(基于某些数据值的图像更改)来自另一个活动B,基于该第二个活动中设置的一些数据值。

目前我发现我可以通过从A到B的转换并返回到A来传递ListView行的位置值,但我仍然坚持进一步的实现。

我应该怎么做?我在这里看到的大多数帖子都谈到了从onBackPressed()内为该ListView行触发图像更改。但是,我需要根据从活动B返回活动A的事件来执行此操作。

任何建议都将不胜感激。 TIA。

1 个答案:

答案 0 :(得分:1)

简短的回答是,您永远不应该访问单个ListView行并更新它View(有一些方法可以通过保留对显示的视图的引用来实现,但是你不该'。T)

你应该做的是:

  1. 从活动B获得结果时,您可以设置数据 适用于要更新的​​行(或执行onResume()时)的活动A中的适配器。
  2. 为该适配器调用notifyDataSetChanged()
  3. 列表将更新,如果该行可见,则会更新 相应地。
  4. 没有充分的理由不遵循这一点并只更新一行(因为如果更新视图需要很长时间,那就意味着你做错了什么。)