android - 如何更新我在 ListView 中单击的行旁边的所有行?

标签 android android-listview android-adapter

基于问题How can I update a single row in a ListView?我想更新我正在更改的行旁边的所有可见行。我可以使用 listView.getChildAt(index) 获取我想要的任何行,但我不知道如何将返回的 View 与我已有的另一个 View 进行比较。它们的 ID 基于 XML 文件中的 View 定义,因此所有行都具有相同的 ID。

欢迎任何帮助,在此先感谢。

最佳答案

这个问题是针对一个非常具体的案例。如果你想更新所有行,那么

  1. 只有“现在在屏幕上可见”的行才是 ListView 的实际 subview 。想要更新其他人甚至没有意义。
  2. 实际上,为每个 subview 单独执行此操作是刷新整个 ListView 的一种非常迂回的方式。

只需更改适配器的支持数据,然后对其调用 notifyDataSetChanged()。它将刷新所有可见项目(为每个项目调用 getView()),并且当您滚动时,新项目也将显示为已更新。

关于android - 如何更新我在 ListView 中单击的行旁边的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24564104/

相关文章:

android - 滑动以删除 ListView 显示 Artifact

java - 如何获取HashMap的第一个元素

android - Android 中数据和 UI 之间松散耦合的最佳实践 - Adapter、Filter、CursorLoader 和 ContentProvider

Android - 尝试从 Fragment 实现适配器时出现 NullPointerException

android - 尽管滚动,如何使 ProgressBar 保持在屏幕中央

android - 改造 -> 记录到文件

android - AsyncTask 真的在概念上存在缺陷还是我只是遗漏了什么?

android - Flutter - 另一个 Listview 中的 Listview.builder

android - 如何在 Eclipse ADT v22.3 中增加堆大小

java - ListView 两次显示列表项