如何获取非活动视图的复选框ID?

时间:2012-01-21 08:50:35

标签: android listview checkbox

在Android中,我构建了一个ListView AA(在Activity A中),它是从存储在Resources中的String数组中膨胀出来的。 ListView中的每个项打开另一个ListView BB(在活动B中),它同样从Resources中的另一个String数组中膨胀。 Activity B的ListView包含TextView和CheckBox行。每个BB列表视图都是唯一的,并且依赖于listview AA。

然后我使用每个复选框的状态来添加或从ArrayList中删除。 ArrayList最终将包含从ListView BB中选择的项目。

问题是,当我返回ListView AA时,我希望能够获得所有复选框的状态,无论它是否已打开相应的BB列表视图,并根据某些条件进行更改。由于每个复选框ID都不唯一,我如何找到每个复选框的状态?

1 个答案:

答案 0 :(得分:0)

您将无法遍历复选框本身,因为如果您的列表滚动,屏幕上没有的复选框实际上不存在。

要正确保留列表状态,您应该使用其他一些机制。由于listview AA是从字符串数组资源填充的,虽然听起来很粗糙,但最好将项目的已检查状态存储在Activity中的私有列表中。在任何情况下,您可能希望拥有自定义列表适配器并覆盖getView()。

希望有所帮助。