Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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中捕获复选框事件_Android_Listview_Checkbox_Android Listview_Android Arrayadapter - Fatal编程技术网

Android 如何在ListView中捕获复选框事件

Android 如何在ListView中捕获复选框事件,android,listview,checkbox,android-listview,android-arrayadapter,Android,Listview,Checkbox,Android Listview,Android Arrayadapter,我只在列表视图中添加了复选框。 list_checkbox.xml: 在java中;为了捕获列表中的事件,我使用了以下命令:: items1={" "," "," "," "}; //blank i.e. no text near checkbox lv1.setAdapter(new ArrayAdapter<String>(this, R.layout.list_checkbox, items1)); lv1.setOnItemClickListener(new OnIt

我只在列表视图中添加了复选框。
list_checkbox.xml:


在java中;为了捕获列表中的事件,我使用了以下命令::

items1={" "," "," "," "}; //blank i.e. no text near checkbox

lv1.setAdapter(new ArrayAdapter<String>(this, R.layout.list_checkbox, items1));
lv1.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {

      // When clicked,put code here.....
    }
  });
items1={“”、“”、“”}//空白,即复选框附近没有文本
lv1.setAdapter(新的ArrayAdapter(this,R.layout.list_复选框,items1));
lv1.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//单击时,将代码放在此处。。。。。
}
});
但是现在在哪里以及如何捕获复选框事件? 详细信息请参见 我是个新手。

thanx..

如果在ListView中放入可聚焦或可单击的视图,则不会调用您的OnItemClickListener。 默认情况下,复选框是可单击的,因此在这种情况下设置McClickListener不会起任何作用

在这种情况下,您可以实现一个自定义适配器(只需扩展ArrayAdapter),并将OnClickListener添加到为ListView提供的每个视图中

public class TestAdapter extends ArrayAdapter {
    ...
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = super.getView(position, convertView, parent);
        v.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // Do your logic here eg. if ((CheckBox)v).isChecked()...
             }
         });
         return v;
    }
}
你可以找到关于这个主题的非常好的教程。整章都值得一读,但你问题的答案在第112页,互动行


另请看堆栈溢出问题。

如果您在ListView中放入可聚焦视图或可单击视图,则不会调用OnItemClickListener。 默认情况下,复选框是可单击的,因此在这种情况下设置McClickListener不会起任何作用

在这种情况下,您可以实现一个自定义适配器(只需扩展ArrayAdapter),并将OnClickListener添加到为ListView提供的每个视图中

public class TestAdapter extends ArrayAdapter {
    ...
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = super.getView(position, convertView, parent);
        v.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // Do your logic here eg. if ((CheckBox)v).isChecked()...
             }
         });
         return v;
    }
}
你可以找到关于这个主题的非常好的教程。整章都值得一读,但你问题的答案在第112页,互动行


另请看堆栈溢出问题。

您已经回答了自己的问题。在McClick中,您已经在此处对您的答案进行了评论。下一个问题是,单击某个项目时,您希望执行什么操作。这是在列表中单击某个项目时使用的。我想捕获一个复选框。当第一个复选框被选中时,调用函数A,如果第三个复选框被选中,调用函数B,依此类推。你已经回答了你自己。在McClick中,您已经在此处对您的答案进行了评论。下一个问题是,单击某个项目时,您希望执行什么操作。这是在列表中单击某个项目时使用的。我想捕获一个复选框。如果选中第一个复选框,则调用函数A,如果选中第三个复选框,则调用函数B,依此类推。。