如果已在 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)
我想在有人点击右侧的单选按钮时将分数增加 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)