Android:listview中项目中的ID
我有一个listview,每个项目有2个复选框,我希望其中一个被自动选中,如果另一个被选中(即在同一项目)。但结果是,当我选中任何项目中的第二个复选框时,选中的是第一个项目的第一个复选框!(不在同一项目中) xml中的复选框代码: ` } `Android:listview中项目中的ID,android,listview,Android,Listview,我有一个listview,每个项目有2个复选框,我希望其中一个被自动选中,如果另一个被选中(即在同一项目)。但结果是,当我选中任何项目中的第二个复选框时,选中的是第一个项目的第一个复选框!(不在同一项目中) xml中的复选框代码: ` } ` 是否有人知道如何解决该问题,并指出要检查的复选框是同一项中的复选框(它具有相同的id号?)第一个问题是您根本不需要handler()方法。复选框的默认行为是在单击时进行检查,而无需调用setChecked()setChecked()通常用于在“单击以检查/
是否有人知道如何解决该问题,并指出要检查的复选框是同一项中的复选框(它具有相同的id号?)第一个问题是您根本不需要
handler()
方法。复选框的默认行为是在单击时进行检查,而无需调用setChecked()
setChecked()
通常用于在“单击以检查/取消选中流程”标准之外显式选中或取消选中复选框
但是,如果您确实希望处理程序方法工作(并且假设所有复选框都在单击时调用handle()
),您可能会发现使用传递给函数的视图会更好:
public void handler(View v) {
CheckBox rb = (CheckBox) v;
rb.setChecked(true);
}
不要使用onClick,而是添加一个oncheckedchangelistener我的意思是,单击时,除了选中单击的复选框外,还选中了另一个复选框。(如果选中了第一个复选框,则会自动选中另一个)您总是将
复选框3
设置为选中,因此如果第一个复选框不是复选框3
,这就是您的问题。它的id在所有项目中(在列表的所有行中)都是复选框3否?问题是,我如何指示它与复选框单击的项位于同一项中查看我建议对handler()
函数所做的更改。如果您不利用通过单击事件传入的视图,您将不会有太多的运气找到正确的复选框3
。
public void handler(View v) {
CheckBox rb = (CheckBox) findViewById(R.id.checkBox3);
rb.setChecked(true);
public void handler(View v) {
CheckBox rb = (CheckBox) v;
rb.setChecked(true);
}