首页 > 解决方案 > 如何将项目添加到列表中在 Android 上选中复选框时

问题描述

在我的应用程序中,我有 3 checkBoxs。我希望在选中每个checkboxs时值添加到List<integer>其中,当取消选中时,从. 例如:我有 3秒。安卓-IOS - Windows。_ 我想在检查Android时将数字2添加到. 检查iOS 时,将数字4添加到中。检查Windows 时,将数字8添加到中。List<Integer>
ceckbox

List
List
List
并且当取消选中每个 this时checkbox,从中删除这个数字List

我写了下面的代码,但没有显示真实的结果!

btnTesterSignUp.setOnClickListener(v -> {
        if (signUp_pcCheck.isChecked()) {
            userDevicesList.add(0, 2);
        } else {
            if (userDevicesList.size() > 0)
                try {
                    userDevicesList.remove(0);
                } catch (Exception e){

                }
        }

        if (signUp_mobileCheck.isChecked()) {
            userDevicesList.add(1, 4);
        } else {
            if (userDevicesList.size() > 0)
                try {
                    userDevicesList.remove(1);
                } catch (Exception e){

                }
        }

        if (signUp_tabletCheck.isChecked()) {
            userDevicesList.add(2, 8);
        } else {
            if (userDevicesList.size() > 0)
                try {
                    userDevicesList.remove(2);
                } catch (Exception e){

                }
        }

        Log.e("userDevicesLog", userDevicesList.toString());

    });

标签: javaandroidlistarraylist

解决方案


检查这个:

        List<Integer> list = new ArrayList<>();
        CheckBox ios = ...
        CheckBox android = ...
        ios.setOnCheckedChangeListener((buttonView, isChecked) -> {
            if (isChecked)
                list.add(2);
            else if (list.contains(2))
                list.remove(Integer.valueOf(2));
        });
        android.setOnCheckedChangeListener((buttonView, isChecked) -> {
            if (isChecked)
                list.add(4);
            else if (list.contains(4))
                list.remove(Integer.valueOf(4));
        });

推荐阅读