我想取消选中expandable listview子项中的所有复选框,但问题是它只取消选中视图组中的可见复选框。不可见的复选框未被取消选中。请帮帮我。
public void uncheckAllChildrenCascade(ViewGroup vg) {
for (int i = 0; i < vg.getChildCount(); i++) {
View v = vg.getChildAt(i);
if (v instanceof CheckBox) {
((CheckBox) v).setChecked(false);
} else if (v instanceof ViewGroup) {
uncheckAllChildrenCascade((ViewGroup) v);
}
}
}
答案 0 :(得分:0)
将复选框存储在arrayList:
中 final ArrayList<CheckBox> myCheckBoxes = new ArrayList<>();
final CheckBox checkBox = new CheckBox(this);
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isSelected()){
myCheckBoxes.remove(checkBox);
}else{
myCheckBoxes.add(checkBox);
}
}
});
然后将Checked设置为false:
for (int i = 0; i < myCheckBoxes.size(); i++) {
myCheckBoxes.get(i).setSelected(false);
}
完成了所有CheckBoxes取消选中:)
答案 1 :(得分:0)
您只能取消选中可见的复选框,导致您使用ViewHolder。
你没有列表或存储数据的东西吗?
更改您的列表并致电notifyDataSetChanged()
。
答案 2 :(得分:0)
在getChildView中,如果ArrayList在当前的groupPosition中为true,则选中子复选框,否则取消选中它。 我希望这就是你所需要的。
moment().startOf('hour').fromNow()
答案 3 :(得分:0)
private final Set<Pair<Long, Long>> mCheckedItems = new HashSet<Pair<Long, Long>>();
final CheckBox cb = (CheckBox) convertView.findViewById(R.id.cb_checkbox);
RelativeLayout relativelayout=(RelativeLayout) convertView.findViewById(R.id.rl_selected);
txtListChild.setText(childText);
final Pair<Long, Long> tag = new Pair<Long, Long>(getGroupId(groupPosition), getChildId(groupPosition, childPosition));
cb.setTag(tag);
cb.setChecked(mCheckedItems.contains(tag));
relativelayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (cb.isChecked()) {
cb.setChecked(false);
mCheckedItems.remove(tag);
Shop.iv_shopbyCategory.setVisibility(View.GONE);
Shop.tv_rl_selectedshopByCategory.setText(" ");
}
else
{
mCheckedItems.clear();
cb.setChecked(true);
mCheckedItems.add(tag);
final String SelectedGrouposition=(String) getGroup(groupPosition);
final String SelectedChildposition=(String) getChild(groupPosition, childPosition);
listAdapter.notifyDataSetChanged();
}
}
});
我有一个可扩展的列表视图,当我点击相对布局时,它会更改选中或取消选中的复选框,当我选择新的检查时,它将删除所有选中的检查..
对我来说它的工作并希望它对你也有用......