Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:listview中项目中的ID_Android_Listview - Fatal编程技术网

Android:listview中项目中的ID

Android:listview中项目中的ID,android,listview,Android,Listview,我有一个listview,每个项目有2个复选框,我希望其中一个被自动选中,如果另一个被选中(即在同一项目)。但结果是,当我选中任何项目中的第二个复选框时,选中的是第一个项目的第一个复选框!(不在同一项目中) xml中的复选框代码: ` } ` 是否有人知道如何解决该问题,并指出要检查的复选框是同一项中的复选框(它具有相同的id号?)第一个问题是您根本不需要handler()方法。复选框的默认行为是在单击时进行检查,而无需调用setChecked()setChecked()通常用于在“单击以检查/

我有一个listview,每个项目有2个复选框,我希望其中一个被自动选中,如果另一个被选中(即在同一项目)。但结果是,当我选中任何项目中的第二个复选框时,选中的是第一个项目的第一个复选框!(不在同一项目中)

xml中的复选框代码: `

} `


是否有人知道如何解决该问题,并指出要检查的复选框是同一项中的复选框(它具有相同的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);
}