如果已在 Android 中选中,如何防止第二次单击单选按钮?

How to prevent second click on radio button if it was already checked in Android?

我想在有人点击右侧的单选按钮时将分数增加 1。如果有人点击 2 次,则分数增加 2。我试图用布尔值来防止这种情况发生,但它不起作用。我错了吗? 这是我的代码:

                boolean isChecked;

                answer[j].setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        RadioButton checkedRadioButton = ((RadioButton) v);
                        if (isChecked) {
                            if (checkedRadioButton.isChecked() & CorrectAnswer == 1) {
                                score++;
                                isChecked = false;
                            }
                        }
                    }
                });

谢谢!

假设您不需要 OnClickListener 之外的值,最简单的做法是将其作为 class 的成员变量:

new View.OnClickListener() {
  private boolean isChecked = true; // HERE

  @Override
  public void onClick(View v) {
    RadioButton checkedRadioButton = ((RadioButton) v);
    if (isChecked) {
      if (checkedRadioButton.isChecked() && CorrectAnswer == 1) {
        score++;
        isChecked = false;
      }
    }
  }
};

您还需要最初将其值设置为 true,否则它将是 false,因此条件的主体永远不会运行。

您也可以简单地使用

if (!checkedRadioButton.isChecked())

而不是专门的检查器

 if (isChecked)