使用此代码checkBox
正确点击工作。
点击项目时如何查看CheckBox
的{{1}}?
我有ListView
ListView
,CheckBox
。怎么做?
TextView
答案 0 :(得分:0)
在你的构造函数中创建一个与你的mAllitems相同大小的arraylist,如:
ArrayList<Boolean> isCheckedItem = new ArrayList<>();
for(int i = 0 ;i < mAllitems.size(); i++){
isCheckedItem.set(i, false);
}
之后在getView()methid中你检查数据!= null把这段代码:
if(isCheckedItem.get(position)){
holder.selected.setChecked(true);
}else{
holder.selected.setChecked(false);
}
删除holder.selected.setOnClickListener()方法并添加holder.selected.setOnCheckedChangeListener()方法:
holder.selected.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int position = (int)buttonView.getTag();
if(isChecked){
isCheckedItem = true;
}else{
isCheckedItem = false;
}
}
});
答案 1 :(得分:0)
将onItemClickListener设置为listview并在其中访问CheckBox,然后您可以选中/取消选中它。像这样:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
View v;
int count = parent.getChildCount();
parent.requestChildFocus(v, view);
for (int i=0; i<count; i++)
{
v =parent.getChildAt(i);
if(v instanceof CheckBox){
final CheckBox cb = (CheckBox) v;
cb.setChecked(true);
}
}
}
});
希望这可以帮助你。