我有一个带有ListView和适配器的Activity。 ListView中的每一行都包含一个EditText和一个CheckBox。这个ListView有两个问题: 第一:更改设备方向或按主页按钮后保存已选中复选框的最佳方法是什么? 第二:我实现了删除所选行的功能。当我点击复选框并按下“删除按钮”时,我在我的适配器上调用notifyDataSetChanged,一切正常,但如果选中的行不是我列表中的最后一行,那么在删除字段后的所有操作第一个字段都会被检查。为什么呢?
答案 0 :(得分:0)
listview一直在回收视图。这意味着删除字段后面的字段中的复选框是已删除字段中的SAME复选框。这就是它被检查的原因。
解决方案是将已检查状态始终存储在视图外部的活动中。最简单的方法可能是布尔值的一些关键点。
答案 1 :(得分:0)
试试这个..
从列表项创建模型并将已检查和未检查的值存储到一个变量,并且还必须使用getTag()和setTag()方法。