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

时间:2015-11-09 15:51:40

标签: java android radio-button onclicklistener

当有人点击右侧的单选按钮时,我想将分数提高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;
                            }
                        }
                    }
                });

谢谢!

2 个答案:

答案 0 :(得分:3)

假设您不需要OnClickListener之外的值,最简单的方法是使其成为该类的成员变量:

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,因此条件的主体永远不会运行。

答案 1 :(得分:3)

你也可以简单地使用

if (!checkedRadioButton.isChecked())

而非专用检查程序

 if (isChecked)