我正在使用自定义对话框,其中我已经显示 listView 并带有复选框。我想选择ListView的所有复选框单击对话框中的按钮。
这是我的按钮onClickListener
selectAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (int i = 0; i < listView.getChildCount(); i++) {
LinearLayout myLayout =(LinearLayout)listView.getChildAt(i);
CheckBox cb = (CheckBox) myLayout.findViewById(R.id.checkbox);
cb.setChecked(true);
}
}
});
使用上面的代码,我只能查看那些正在查看的复选框。 我知道这是因为listView重用了视图。 请建议我做什么
答案 0 :(得分:0)
您可以将boolean变量添加到模型类中,并在按钮单击侦听器上设置为true,请检查:
class YourModel{
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean selected) {
isSelected = selected;
}
}
您的按钮onClick更改。
public void onClick(View view) {
for (int i = 0; i < yourArrayList.size(); i++) {
yourArrayList.get(i).setSelected(true);
}
yourAdapter.notifyDataSetChanged();
}
你的适配器getView方法
public View getView ( final int position, View convertView, ViewGroup parent){
CheckBox cb = (CheckBox) myLayout.findViewById(R.id.checkbox);
cb.setChecked(yourModel.isSelected());
}