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

时间:2015-11-12 08:22:47

标签: java android onclicklistener android-radiogroup android-radiobutton

我用4个单选按钮以编程方式创建了4个无线电组。每个单选按钮代表一个问题的答案。假设我们在第一个广播组中有3个错误答案,只有一个正确答案。第一个,第二个和第三个是错误的,第四个是正确的。当有人只检查一个单选按钮时,比方说第一个单选按钮,这是一个错误的按钮,这将转到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 个答案:

答案 0 :(得分:0)

您可以这样做:

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]);
            }
        }
    }
});