gpt4 book ai didi

java - 通过复选框添加/删除 ArrayList 中的字符串

转载 作者:行者123 更新时间:2023-12-02 05:19:12 25 4
gpt4 key购买 nike

我在每次选中或取消选中复选框时添加/删除已添加到 ArrayList 的字符串时遇到问题。

问题似乎是当选中超过 1 个复选框时,字符串会重复。因此,如果我要选中第一个框,它会将其添加到数组中。如果我取消选中第一个框,它会将其从数组中删除。当我勾选第二个复选框时,问题就出现了。当我按下另一个复选框时,它似乎添加了前一个复选框字符串,以及当前字符串的 2 个。

Only the first checkbox checked 
10-29 14:46:10.051: E/PAGES(14154): [alertPage]

2 checkboxes checked
10-29 14:46:10.051: E/PAGES(14154): [alertPage, alertPage, automationPage]

每个附加复选框都会延续这种模式

关于为什么会发生这种情况有什么想法吗?

强文字

    if (mCheckBoxAlerts.isChecked()) {
mAlertsPermLayout.setVisibility(LinearLayout.VISIBLE);
pageArray.add("alertPage");
} else {

mAlertsPermLayout.setVisibility(LinearLayout.GONE);
pageArray.remove("alertPage");
}
if (mCheckBoxAutomation.isChecked()) {
mAutomationPermLayout.setVisibility(LinearLayout.VISIBLE);
pageArray.add("automationPage");
} else {
mAutomationPermLayout.setVisibility(LinearLayout.GONE);
pageArray.remove("automationPage");
}

这是我如何转换为字符串

        String pageString = pageArray.toString();
Log.e("PAGES", pageString);

最佳答案

每次您添加另一个复选框时,它仍然会检查前一个复选框是否已选中。如果是,则将另一个相同字符串的对象添加到数组列表中。您需要检查数组列表是否已包含该字符串,如果包含则不要添加。我建议使用 Set 而不是 arraylist。这将不允许 arraylist 允许重复。

关于java - 通过复选框添加/删除 ArrayList<String> 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26638267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com