gpt4 book ai didi

java - Android - 比较 Array/Arraylist 元素以预先检查复选框的有效方法

转载 作者:行者123 更新时间:2023-12-01 09:44:36 26 4
gpt4 key购买 nike

想要在我的 Android 测验应用程序中加载用户测验结果。我从数据库中获取字符串形式的结果。在下一步中,我将此字符串转换为数组,然后转换为数组列表。然后我迭代列表以获取复选框的 id,比较它们并检查它们是否匹配。

        userResultCursor = db.getUserResults(question.getId());
if (userResultCursor != null && userResultCursor.getCount() != 0) {
String resultString = userResultCursor
.getString(userResultCursor.getColumnIndexOrThrow(MyDatabase.ResultColumns.RESULT));
String resultArray[] = convertStringToArray(resultString);
List<String> resultList = Arrays.asList(resultArray);

for (String id : resultList) {
if (cb_answer1.getId() == Integer.parseInt(id)) {
cb_answer1.setChecked(true);
}

if (cb_answer2.getId() == Integer.parseInt(id)) {
cb_answer2.setChecked(true);
}

if (cb_answer3.getId() == Integer.parseInt(id)) {
cb_answer3.setChecked(true);
}

if (cb_answer4.getId() == Integer.parseInt(id)) {
cb_answer4.setChecked(true);
}

if (cb_answer5.getId() == Integer.parseInt(id)) {
cb_answer5.setChecked(true);
}
}
}

我实际上不喜欢这个解决方案,因为它看起来很尴尬。我认为对此有更好的解决方案。您有什么技巧可以有效地获得相同的结果吗?

最佳答案

您可以缩短此代码,但就性能而言,就我而言,它实际上效率不高。

您看到那些重复的 cb_answer1cb_answer2cb_answer3 了吗?这意味着您可能需要一个数组:

CheckBox[] answerCheckBoxes = { cb_answer1, cb_answer2, cb_answer3 } 
// I'm lazy. Please add the rest in yourself

现在您可以循环它:

for (CheckBox cb : answerCheckBoxes) {
if (cb.getId() == Integer.parseInt(id)) {
cb.setChecked(true);
}
}

关于java - Android - 比较 Array/Arraylist 元素以预先检查复选框的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38169901/

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