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

asp*_*ame 6 checkbox android listview filtering

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

setItemChecked(position, true);
Run Code Online (Sandbox Code Playgroud)

我将它与过滤选项结合起来

setTextFilterEnabled(true)
Run Code Online (Sandbox Code Playgroud)

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

问题是当我过滤列表时,条目在列表视图中切换位置.例如,三个条目:'A','B'和'C',其中事先检查'C'(即列表中位置3的条目).当我在键盘上键入"C"时,只显示"C"条目(按预期).现在不再检查'C',因为该条目已从检查的位置3移动到列表中未检查的位置1.

此行为导致应用程序中的一些不太受欢迎的效果.有没有办法"通过过滤移动选择",即将选中状态绑定到条目而不是列表中的初始位置?或者我需要找到一种新方法吗?

谢谢,

莱纳斯

Pen*_*m10 3

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