Android 实现自定义可检查列表视图+动态适配器

Android 实现自定义可检查列表视图+动态适配器,android,listview,Android,Listview,我已经实现了自定义列表视图,它有两行名称和编号,并且是可检查的。 列表视图具有多个选择选项 每当用户搜索名称时,游标将返回新的项目列表。一旦适配器被新的游标项更改,我就无法跟踪先前选择的项 例如,用户搜索名称Jo,它返回10个项目,其中我选择了2行。删除搜索后,光标和适配器将发生更改。我无法标记已检查的项目 我想覆盖基于位置的默认可检查项必须写入自己的位置,该位置必须使项目基于_id联系人id可检查 我尝试了覆盖充气方法。但这没用 谢谢你的帮助。 提前感谢。您需要的是一个对象,用于将复选框数据保

我已经实现了自定义列表视图,它有两行名称和编号,并且是可检查的。 列表视图具有多个选择选项


每当用户搜索名称时,游标将返回新的项目列表。一旦适配器被新的游标项更改,我就无法跟踪先前选择的项

例如,用户搜索名称Jo,它返回10个项目,其中我选择了2行。删除搜索后,光标和适配器将发生更改。我无法标记已检查的项目

我想覆盖基于位置的默认可检查项必须写入自己的位置,该位置必须使项目基于_id联系人id可检查 我尝试了覆盖充气方法。但这没用

谢谢你的帮助。
提前感谢。

您需要的是一个对象,用于将复选框数据保存到适配器和listview中。布尔数组的哈希映射就足够了

private HashMap<String, boolean[]> contactMap;

基本上,您有一个适配器,它只能容纳一个布尔[],可以调整listview中的复选框,在单击复选框时修改为布尔[],然后在您仍然需要它的情况下返回它

您需要的是一个对象,使复选框数据持久化到适配器和listview中。布尔数组的哈希映射就足够了

private HashMap<String, boolean[]> contactMap;

基本上,您有一个适配器,它只能容纳一个布尔[],可以调整listview中的复选框,在单击复选框时修改为布尔[],然后在您仍然需要它的情况下返回它

一旦适配器被新的游标项更改,我就无法跟踪先前选择的项。当然你可以。。。只需从listview的源中键入一些内容。一旦适配器被新的光标项更改,我就无法跟踪先前选择的项。当然你可以。。。只需从listview的源代码中键入一些内容即可。谢谢mango。我解决了上面的问题。现在我面临另一个问题。请参阅下面的链接,当适配器发生更改时,我在维护可检查项时遇到问题。以某种方式,我已经创建了自定义适配器,它应该基于我的自定义id[\u contact\u id]跟踪项目。被选中的项目将被维护,但已按其位置进行维护。因此,无论何时没有更改任何listitems,adapter/checkable仍会根据其位置跟踪所选id。因此,它选择了错误的项目。请参阅上面的评论和链接。谢谢芒果。我解决了上面的问题。现在我面临另一个问题。请参阅下面的链接,当适配器发生更改时,我在维护可检查项时遇到问题。以某种方式,我已经创建了自定义适配器,它应该基于我的自定义id[\u contact\u id]跟踪项目。被选中的项目将被维护,但已按其位置进行维护。因此,无论何时没有更改任何listitems,adapter/checkable仍会根据其位置跟踪所选id。因此,它选择了错误的项目,请参见上述注释和链接。