Android Set不会删除arraylist中已选中然后未选中的值

时间:2018-10-19 07:35:08

标签: java android arraylist checkbox hashset

我有一个数组列表,其中包含所有选中的项目以及一个哈希集,以防止重复。但是现在我有一个问题,即使我未选中它,数组列表仍然存储以前检查过的项目。

我一直在寻找像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();
        }

    });

屏幕截图:

Checked boxes

Unchecked, but the arraylist still contains the previously checked ones

1 个答案:

答案 0 :(得分:0)

由于某些原因,删除\ n并使用citySelection.remove(dataModel.getCity());借助LuCio对其进行了修复