有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我如何获得Android中从广播组检查的最后一个单选按钮?

我已经用4个单选按钮以编程方式创建了4个单选组。每个单选按钮代表一个问题的答案。假设我们在第一组广播中有三个错误答案,只有一个正确答案。第一个、第二个和第三个是错误的,第四个是正确的。当有人只检查一个单选按钮时,比如说第一个单选按钮是错误的,这将进入wrongAnswersRadios数组列表。但是,如果有人检查了第一个,然后改变主意,检查了最后一个(正确的),那么第一个被检查的将进入wrongAnswersRadios数组列表,最后一个被检查的将进入correctAnswerRadios数组列表。我认为每次选中单选按钮时onClick都会触发
如何在数组列表中仅添加每个单选组中最后选中的单选按钮?这是我的密码:

correctAnswerRadios = new ArrayList<>();
wrongAnswersRadios = new ArrayList<>();

radioGroup.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        for (int j = 0; j < 4; j++) {
            checkedRadioButton[j] = ((RadioButton) v);
            if (checkedRadioButton[j].isChecked() & CorrectAnswer == 1) {
                correctAnswerRadios.add(checkedRadioButton[j]);
            } else {
                wrongAnswersRadios.add(checkedRadioButton[j]);
            }
        }
    }
});

共 (1) 个答案

  1. # 1 楼答案

    您可以这样做:

    correctAnswerRadios = new ArrayList<>();
    wrongAnswersRadios = new ArrayList<>();
    
    radioGroup.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View v) {
            for (int j = 0; j < checkedRadioButton.length; j++) {            
                correctAnswerRadios.remove(checkedRadioButton[j]);
                wrongAnswersRadios.remove(checkedRadioButton[j]);
            }
            for (int j = 0; j < checkedRadioButton.length; j++) {
                if (checkedRadioButton[j].isChecked() & CorrectAnswer == 1) {
                    correctAnswerRadios.add(checkedRadioButton[j]);
                } else {
                    wrongAnswersRadios.add(checkedRadioButton[j]);
                }
            }
        }
    });