![](/img/trans.png)
[英]How to prevent second click on radio button if it was already checked in Android?
[英]Preventing a second click on RadioButton if it was already checked
我正在創建一個小測驗應用程序。 正如問題所提示的,如何在不禁用按鈕的情況下防止再次單擊? 當我單擊單選按鈕兩次時,它增加了2分而不是1分。非常感謝!
這是我的應用程序的圖片:
public void question1 (View view) {
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.question1_9:
if (checked) {
scoreForRadioButtons += 1;
}
case R.id.question1_8:
if (checked) {
break;
}
case R.id.question1_7:
if (checked) {
break;
}
}
}
解決了
這就是我所做的:只需添加“ break”; 正確答案。
public void question1 (View view) {
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.question1_9:
if (checked) {
pointForQ1 = 1;
break;
}
case R.id.question1_8:
if (checked) {
pointForQ1 = 0;
}
case R.id.question1_7:
if (checked) {
pointForQ1 = 0;
}
}
}
簡短答案:
如果確實要使用以下選項,則可以在clickable
RadioButton
按鈕后將clickable
屬性設置為false:
myRadioButton.setClickable(false);
長答案:
請勿為此使用單選按鈕。 用戶應該能夠根據需要多次單擊單選按鈕,而不會發生增加分數的情況。 這是單選按鈕的標准約定,一旦選中,一次又一次選擇,將不執行任何新代碼。 請注意,這僅在選擇期間單選按鈕的狀態未更改(狀態表示是否已選擇)的情況下 。
您的應用使用(或想要使用) RadioButtons
方式不正確。 我建議為此使用按鈕,您可以在其中執行以下操作:
myButton.setEnabled(false);
編輯:
如果要使用戶單擊按鈕可見,可以做一些事情(更改其文字,更改背景顏色)。 對於此示例,您可以使用以下方法更改背景顏色:
myButton.setBackgroundColor(Color.GREEN); // or whatever colour you choose
如果要執行此操作,請將以下內容添加到導入中:
import android.graphics.Color
如果您不想兩次單擊該單選按鈕,則單擊單選按鈕后,添加view.setEnabled(false);
或view.setClickable(false);
防止它再次單擊
為防止第二次單擊選中的單選按鈕,請禁用該單選按鈕
radioButton.setEnabled(false);
禁用單擊的按鈕,然后在選中另一個按鈕時啟用它
public void question1 (View view) {
//will enable all buttons
Integer[] buttons = {R.id.question1_9, R.id.question1_8, R.id.question1_7};
for (int i = 0; i < buttons.length; i++) {
findViewById(buttons[i]).setEnabled(true);
}
RadioButton button = (RadioButton) view;
if (button.isChecked()){
switch (view.getId()) {
case R.id.question1_9:
scoreForRadioButtons ++;
//will disable clicked button
button.setEnabled(false);
break;
case R.id.question1_8:
break;
case R.id.question1_7:
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.