Android 将选中的复选框值存储在字符串数组中

Android 将选中的复选框值存储在字符串数组中,android,Android,我有一个自定义对话框,其中包含一个CarBodyColorsNames的Recylerview+SearchView。还有一件事,我有一个适配器,每个项目都有一个自定义行。自定义行由一个Imagview(图标)、TextView(colorName)和复选框组成。它工作正常,但问题是,我想根据适配器位置在字符串数组中存储用户选中的所有值。以下是我的代码: edBodyColorAdapter.java holder.checkBoxColor.setOnCheckedChangeListener

我有一个自定义对话框,其中包含一个CarBodyColorsNames的Recylerview+SearchView。还有一件事,我有一个适配器,每个项目都有一个自定义行。自定义行由一个Imagview(图标)、TextView(colorName)和复选框组成。它工作正常,但问题是,我想根据适配器位置在字符串数组中存储用户选中的所有值。以下是我的代码:

edBodyColorAdapter.java

holder.checkBoxColor.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {


                if(isChecked)
                {
                    int position = holder.getAdapterPosition();
                    clickedColorNamePosition = edBodyColorArrayList.indexOf(filteredArrayList.get(position));

                    Toast.makeText(context, "current position = " + clickedColorNamePosition, Toast.LENGTH_SHORT).show();
                    String name = edBodyColorArrayList.get(clickedColorNamePosition).getBodyColorName();

                    Toast.makeText(context, "name = " + name, Toast.LENGTH_SHORT).show();


                }
                else
                {
                    Toast.makeText(context, "Unchecked", Toast.LENGTH_SHORT).show();
                }


            }
    });
当用户单击“确定”按钮时,我想选择所有选中的复选框值


全局声明一个Hashmap,用于将选中/未选中的值作为用户选中/未选中复选框放置/删除

HashMap<Integer, String> selectionMap = new HashMap<>();
此方法用于从hashmap中放置或移除值

private void checkAndRemove(int position, String name) {
        if(selectionMap.containsKey(position)){
            selectionMap.remove(position);
        }else {
            selectionMap.put(position, name);
        }
    }
现在,在用户单击“确定”按钮后,使用此hashmap获取所选值。
迭代hashmap值集,然后您将获得所有选定值。

全局声明1个hashmap,用于将选定/未选定值作为用户检查/未检查复选框放置/删除

HashMap<Integer, String> selectionMap = new HashMap<>();
此方法用于从hashmap中放置或移除值

private void checkAndRemove(int position, String name) {
        if(selectionMap.containsKey(position)){
            selectionMap.remove(position);
        }else {
            selectionMap.put(position, name);
        }
    }
现在,在用户单击“确定”按钮后,使用此hashmap获取所选值。
迭代hashmap值集,然后您将获得所有选定的值。

如果用户再次按下相同的复选框,会发生什么情况?那么,在这种情况下,您将不得不删除该值字符串数组?Kishan Maurya ai不知道如何处理这个问题。这是一个更好的选择。先生,请给我解决方案代码…tnxs请提前告诉我您的问题是否已解决。我希望它能帮助您检查:Kishan Maurya非常感谢您,它为我工作……如果用户再次按下相同的复选框,会发生什么?那么,在这种情况下,您将不得不删除该值字符串数组?Kishan Maurya ai不知道如何处理这个问题。这是一个更好的选择。先生,请给我解决方案代码…tnxs提前通知我您的问题是否已解决我希望它能帮助您检查:Kishan Maurya非常感谢您为我工作。。。。。。。