android - 在 android 中过滤 ListView 时检查了错误的项目

标签 android listview checkbox filtering

我有一个带有多项选择项的 ListView,其中一些从一开始就使用

setItemChecked(position, true);

我把它和过滤选项结合起来

setTextFilterEnabled(true)

因此很容易在列表中找到特定的条目。

问题是,当我过滤列表时,条目会在 ListView 中切换位置。以三个条目为例:“A”、“B”和“C”,其中预先检查了“C”(即列表中位置 3 的条目)。当我在键盘上键入“C”时,仅显示“C”条目(如预期的那样)。现在“C”不再被选中,因为该条目已从列表中的选中位置 3 移动到未选中位置 1。

此行为会导致应用中出现一些不太受欢迎的效果。有没有办法“通过过滤移动选择”,即将选中的状态绑定(bind)到条目而不是它在列表中的初始位置?还是我需要寻找一种新方法?

谢谢,

林纳斯

最佳答案

维护所选项目的列表,每当重新填充列表时检查列表中是否存在 id(不是位置),并将其设置为选中。

关于android - 在 android 中过滤 ListView 时检查了错误的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487821/

相关文章:

android - OneSignal 和 Google gms 不兼容

Android Jetpack 不是 AOSP 平台 API 的一部分

android - 为什么 Android 中的项目高度不包裹内容?

php - WordPress 在使用 update_post_meta 保存之前清理数据

c# - 多个复选框和枚举

android - 如何获取平板电脑上所有用户的内容提供者列表

android - Fabric/Crashlytics Android 为 Apikey 添加字符串资源导致 Crashlytics 开发者工具错误

android - 带有 ScrollListener 的交错 GridView

android - 数据库查询到ListActivity

javascript - 将选中的复选框的所有项目记录到控制台