【问题标题】:How to prevent second click on radio button if it was already checked in Android?如果已经在 Android 中选中,如何防止第二次单击单选按钮?
【发布时间】:2016-02-10 07:47:38
【问题描述】:

当有人单击右侧单选按钮时,我想将分数增加 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 中定义了`boolean isChecked;`,但是当我单击单选按钮时,分数仍然为零。我能做什么?
  • 您的代码实际上不会编译,除非您没有准确说明 isChecked 的声明位置。

标签: java android radio-button onclicklistener


【解决方案1】:

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

【讨论】:

  • 已接受。再次感谢!
【解决方案2】:

你也可以简单地使用

if (!checkedRadioButton.isChecked())

而不是专门的检查器

 if (isChecked)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2019-07-27
    • 1970-01-01
    • 2018-01-07
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多