gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 14:56:28 25 4
gpt4 key购买 nike

我在我的 ListView 中只添加了复选框。
list_checkbox.xml:
<?xml version="1.0" encoding="utf-8"?><br/>
<CheckBox
xmlns:android="http://schemas.android.com/apk/res/android"<br/>
android:layout_width="match_parent"<br/>
android:layout_height="42px"><br/>
</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.....
}
});

但现在在哪里以及如何捕获复选框事件?请详细说明。
我是新手。
谢谢..

最佳答案

如果您在 ListView 中放入可聚焦或可点击的 View ,则不会调用您的 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堆栈溢出问题。

关于android - 如何在ListView中捕获复选框事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5530778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com