簡體   English   中英

Android Quiz應用程序中的單選按鈕

[英]Radiobutton in Android Quiz app

我正在為Android進行測驗應用程序,並且在RadioGroup中使用RadioButtons。 我想實現的是,當有人檢查了正確答案(本例為id/krzyzyk )時,分數將增加1分。 我做了這段代碼:

int score = 2;

public void onRadioButtonClicked(View view) {
    RadioButton radiobutton1 = (RadioButton) findViewById(R.id.krzyzyk);

    if (radiobutton1.isChecked()) {
        score = score + 1;
    }
}

它可以工作,但是當我運行該應用程序並單擊另一個RadioButton並再次單擊id/krzyzyk ,分數將再次更新。 您能幫我解決這個問題嗎?

您可以通過setEnabled(boolean)禁用RadioButton或RadioGroup。

例如,您可以禁用由

radiobutton1.setEnabled(false);

我建議此時禁用所有單選按鈕,以防止用戶更改其答案。 您可以通過調用單選組上的setEnabled(boolean)一次完成所有操作。

RadioGroup group = (RadioGroup) findViewById(R.id.myRadioGroup);
group.setEnabled(false);

當用戶點擊RadioButton krzyzyk時,您的代碼將始終增加分數。

如果您選擇的RadioButton是正確的,我建議您提交答案並轉到下一個問題以增加分數。

將您的代碼更改為類似以下內容:

public void onRadioButtonClicked(View view) {
    // Is the button now checked?
    boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch(view.getId()) {
        case R.id.correct_answer: // this is id/krzyzyk
            if (checked)
                score++;
                // Go to next question
            break;
        case R.id.wrong_answer:
            if (checked)
                // Go to next question.
            break;
    }
}

您已經考慮了測驗的邏輯,當然分數會增加,因為當您選擇正確的答案並在偵聽器中檢查它時(此方法會在每次單擊按鈕時調用),結果將是錯誤的,也許您可​​以嘗試在進行isChecked時您單擊按鈕(下一步,檢查)或用問題刷片段,或者您可以使用一些變量,例如右錯指示器的標志,

int m_rightAnswer =0;
...
public void onRadioButtonClicked(View view) {
   RadioButton radiobutton1 = (RadioButton) findViewById(R.id.krzyzyk);

    if (radiobutton1.isChecked() && m_rightAnswer==0){
        score = score + 1; m_rightAnswer=1 }
              }

它只工作一次,當您單擊正確的答案時,當您單擊任意單選按鈕然后又在右側返回時,您的分數不會改變,但是沒有邏輯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM