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,依此类推。。