我有一个使用ArrayAdapter设置的ListView。适配器为ListView的每一行提供一些文本。适配器基于Strings,基本上只创建一个CheckBox并将其文本设置为相应的String。在ListView之外有一个Switch,当打开时应该检查ListView中的所有CheckBox。我无法在处理单击Switch的方法中访问ListView的每一行内的CheckBoxes。我尝试使用getItemAtPosition(),但据我所知,它只给了我作为CheckBox文本的字符串。有人可以提供一些帮助来解决这个问题吗?
答案 0 :(得分:0)
要获取列表项的视图,请使用列表中的getChildAt()
,然后您可以在视图上调用findViewById()
以获取复选框,但这仅适用于列表中可见的视图
为了让您的生活更轻松,请使用自定义类创建自定义数组适配器。该类应该有一个类似isChecked
的布尔字段,并在getView()
中将复选框设置为checked
或unchecked
,具体取决于isChecked
字段的值,然后您就可以使用getItem()
检索要更改isChecked
值的列表项的类,并在适配器上调用notifyDataSetChanged()
。