我在ListView中只添加了复选框
list_checkbox.xml:
<?xml version="1.0" encoding="utf-8"?>
<CheckBox
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="42px">
</CheckBox>
在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.....
}
});
但现在在哪里以及如何捕获复选框事件?
详细请问
我是新手。
感谢名单..
答案 0 :(得分:6)
如果您将ListView放入可聚焦或可点击的视图中,那么您的OnItemClickListener将不会被调用。 默认情况下可以单击复选框,因此在这种情况下设置OnItemClickListener将不会执行任何操作。
在这种情况下,你可以做的是实现一个自定义适配器(只是扩展ArrayAdapter)并为你为ListView提供的每个View添加一个OnClickListener。
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;
}
}
您可以找到关于此主题here的非常好的教程。值得阅读整章,但您的问题的答案在第112页,Interactive Rows。
另请参阅this Stack Overflow问题。