【发布时间】:2015-12-14 16:34:34
【问题描述】:
元素在选中复选框时被添加到数组列表中,但在取消选中它时不会被删除。 在取消选中复选框时,我必须从 arraylist 中删除元素。 我已经编写了以下代码,请让我知道我错在哪里。
public class CustomAdapter extends BaseAdapter{
NameModel model;
public static ArrayList<NameModel> nameArray;
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater mInflater = (LayoutInflater)context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.item_list, null);
name = (TextView)convertView.findViewById(R.id.name);
cb = (CheckBox)convertView.findViewById(R.id.checkBox1);
cb.setTag(position);
nameArray = new ArrayList<NameModel>();
cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position = (Integer)view.getTag();
CheckBox checkbox = (CheckBox)view;
model = new NameModel(NameList.get(position).getName());
model.setCheckedStatus(checkbox.isChecked());
model.setName(NameList.get(position).getName());
if(checkbox.isChecked()){
CustomAdapter.nameArray.add(model);
Toast.makeText(context, "item checked ", Toast.LENGTH_SHORT).show();
}else{
CustomAdapter.nameArray.remove(model);
Toast.makeText(context, "item unchecked ", Toast.LENGTH_SHORT).show();
}
}
});
}
return convertView;
}
我已将 ArrayList 声明为静态,因为它无法在 getView 方法中访问。
在执行时,它会按预期打印两个 toast,但在取消选中复选框时不会删除元素。
对上述问题的任何帮助将不胜感激。 提前致谢。
【问题讨论】:
-
如何从列表中删除不存在的项目?
-
我有一个带有复选框的自定义列表。第一个用户将通过选中复选框从列表中选择任何元素,该元素将被添加到 ArrayList 中。但是在通过取消选中复选框取消选择元素时,该元素应该从 ArrayList 中删除。
-
NameModel 实现了等号和哈希码?
-
No NameModel 没有实现 equals 和 hashcode。
标签: java android checkbox arraylist baseadapter