2017-11-15 4 views
1

Android 용 퀴즈 앱을 제작 중이며 RadioGroup의 RadioButton을 사용하고 있습니다. 나는 누군가가 옳은 대답을 확인했을 때 (이 경우는 id/krzyzyk) 점수가 1 점 증가 할 것이라고 생각합니다. 이 코드 제작 :Android 퀴즈 앱의 라디오 버튼

int score = 2; 

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

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

그것은 작동을하지만이 응용 프로그램을 실행을 클릭 다른의 RadioButton에 다시 id/krzyzyk 때 점수는 다시 업데이트됩니다. 이 문제를 해결하도록 도와 줄 수 있습니까?

답변

0

사용자가 RadioButton krzyzyk을 탭하면 코드의 점수가 항상 증가합니다.

답변을 제출하고 선택한 라디오 버튼이 정확하면 점수를 높이는 다음 질문으로 이동하십시오.

변경과 같은 뭔가 코드 : 당신이 (정답을 선택하고 수신기에서이를 확인할 때이 방법에 호출하기 때문에 점수가 증가 될 것입니다 물론 당신은 당신의 퀴즈의 논리에 대해 생각했다

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; 
    } 
} 
+0

이전에이 코드를 시도했지만 제대로 작동하지 않습니다. 만약 내가 wrong_answer보다'correct_answer'을하고 다시'correct_answer'하면 앱이 점수를 두 번 올릴뿐 아니라 한 번만 올릴뿐입니다. – Formax

+0

RadioButton을 클릭 한 후 다음 질문으로 리디렉션하고 변수를 정리하여 불리언 값을 false로 재설정하고 다음 사용자 탭을 기다려야합니다. –

+0

Ok 해결책을 찾았습니다. 'onResume()'도움이되었습니다. – Formax

0

setEnabled(boolean)으로 RadioButton 또는 RadioGroup을 비활성화 할 수 있습니다.

예를 들어, 당신은 그들의 대답을 변경하는 사용자를 방지하기 위해, 나는 그 시점에서 모든 라디오 버튼을 비활성화 제안

radiobutton1.setEnabled(false); 

에 의해 선택된 라디오 버튼을 비활성화 할 수 있습니다. 라디오 그룹에서 setEnabled(boolean) (으)로 전화하여이 모든 작업을 동시에 수행 할 수 있습니다.

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

이 명령은 다음 문제를 해결하는 데 도움이되었습니다, 감사합니다! – Formax

0

, 버튼을 클릭 할 때마다), 잘못된 결과가 나올 수 있습니다. 버튼을 클릭하거나 (다음, 확인) 또는 질문으로 조각을 스쳐 지나갈 때 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 } 
       } 

한 번만, 옳은 대답을 클릭하면 라디오 버튼을 클릭하고 돌아올 때 점수는 변하지 않지만 논리는 없습니다