我有一个数组列表,其中包含所有选中的项目以及一个哈希集,以防止重复。但是现在我有一个问题,即使我未选中它,数组列表仍然存储以前检查过的项目。
我一直在寻找像Hashset这样的解决方案,并使用(!isChecked),但是这些解决方案不会删除以前存储的值。
viewHolder.checkBox.setTag(dataModel.getChkBool());
viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (viewHolder.checkBox.isChecked()) {
citiesSelection.add("\n" + dataModel.getCity());
}
//prevent duplicates
hashSet.addAll(citiesSelection);
citiesSelection.clear();
citiesSelection.addAll(hashSet);
Toast.makeText(getContext(), "Checked Total: " + citiesSelection, Toast.LENGTH_LONG).show();
}
});
屏幕截图:
Unchecked, but the arraylist still contains the previously checked ones
答案 0 :(得分:0)
由于某些原因,删除\ n并使用citySelection.remove(dataModel.getCity());借助LuCio对其进行了修复