我正在使用 CheckBox 处理自定义ListView 。当我们点击 ListView 的项目时,我尝试检查单选CheckBox。我该怎么办?
我的XML code
<TextView
android:id="@+id/addressTXT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:text="Price" />
<CheckBox
android:id="@+id/addressCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/addressTXT"
android:layout_marginRight="40dp"
android:focusable="false"
android:focusableInTouchMode="false" />
并点击BaseAdapter
中的项目。
itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
我该怎么做?
答案 0 :(得分:1)
啊,我遇到同样的问题:) 我在下面解决了这个问题。
itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
for (int i = 0; i < parent.getChildCount(); i++) {
View view = parent.getChildAt(i);
CheckBox checkBox = (CheckBox) view
.findViewById(R.id.CheckBox);
checkBox.setChecked(false);
}
CheckBox checkBox = (CheckBox) v
.findViewById(R.id.CheckBox);
checkBox.setChecked(true);
}
});
答案 1 :(得分:0)
你可以这样做:
itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox box = v.findViewById(R.id.addressCheckBox); //get your checkbox
box.setChecked(!box.isChecked()); //toggle checkbox-state
}
});
答案 2 :(得分:0)
首先,您必须为checkBox提供onClickListener,而不是整个视图。 第二,在XML for adapter中你必须把它放到checkBox
android:focusable="true"
android:clickable="true"
如果你需要单独的clickListeners复选框和listView行,你需要这个XML格式的参数用于checkBox
android:focusable="false"
android:clickable="true"