2017-04-14 5 views
2

퀴즈 응용 프로그램을 개발 중입니다. 이전 질문과 다음 질문을위한 두 개의 버튼이 있습니다. 내가하고 싶은 것은 사용자가 옵션 (옵션에 대해 4 개의 라디오 버튼이 있음)에서 답변을 선택하고 다음 질문을 시도 할 때 사용자가 이전 질문을 보려는 경우입니다. 이전에 사용자가 선택한 동일한 라디오 버튼이 활성화되어 있어야합니다. 이를 위해 선택한 라디오 버튼 ID를 저장하기 위해 공유 환경 설정을 사용했습니다. 다음 버튼 클릭의 경우 : 다음은 내 코드입니다안드로이드 스튜디오에서 공유 환경 설정에 저장된 라디오 버튼 id에 따라 라디오 그룹의 특정 라디오 버튼을 활성화하는 방법

nextButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      int radioSelected = radioGroup.getCheckedRadioButtonId(); 
      int userSelection = getSelectedAnswer(radioSelected); 

      sharedPreferences=getSharedPreferences(MyPREFERENCES,MODE_PRIVATE); 
      SharedPreferences.Editor editor=sharedPreferences.edit(); 
      editor.putInt("Ans",userSelection); 
      editor.commit(); 
      int correctAnswerForQuestion =firstQuestion.getCorrectAnswer(); 
      if(userSelection == correctAnswerForQuestion) 
      { 
       Toast.makeText(getApplicationContext(),"Correct Answer",Toast.LENGTH_LONG).show(); 
       currentQuizQuestion++; 

       if(currentQuizQuestion>=quizCount) 
       { 
        Toast.makeText(getApplicationContext(),"End of quiz",Toast.LENGTH_LONG).show(); 
        return; 
       } 
       else 
       { 
        firstQuestion=parsedObject.get(currentQuizQuestion); 
        txtquestion.setText(firstQuestion.getQuestion()); 
        String[] possibleAnswers=firstQuestion.getAnswers().split(","); 
        uncheckedRadioButton(); 
        optionOne.setText(possibleAnswers[0]); 
        optionTwo.setText(possibleAnswers[1]); 
        optionThree.setText(possibleAnswers[2]); 
        optionFour.setText(possibleAnswers[3]); 
       } 
      } 
      else 
      { 
       Toast.makeText(getApplicationContext(),"You choose wrong answer",Toast.LENGTH_LONG).show(); 
       currentQuizQuestion++; 
       firstQuestion=parsedObject.get(currentQuizQuestion); 
       txtquestion.setText(firstQuestion.getQuestion()); 
       String[] possibleAnswers=firstQuestion.getAnswers().split(","); 
       uncheckedRadioButton(); 
       optionOne.setText(possibleAnswers[0]); 
       optionTwo.setText(possibleAnswers[1]); 
       optionThree.setText(possibleAnswers[2]); 
       optionFour.setText(possibleAnswers[3]); 
      } 
     } 
    }); 

그리고 이전 버튼 :

previousButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      currentQuizQuestion--; 
      if(currentQuizQuestion<0) 
      { 
       return; 
      } 
      checkedRadioButton(); 
      firstQuestion=parsedObject.get(currentQuizQuestion); 
      txtquestion.setText(firstQuestion.getQuestion()); 
      String[] possibleAnswers=firstQuestion.getAnswers().split(","); 
      optionOne.setText(possibleAnswers[0]); 
      optionTwo.setText(possibleAnswers[1]); 
      optionThree.setText(possibleAnswers[2]); 
      optionFour.setText(possibleAnswers[3]); 

     } 
    }); 
    JSON_DATA_WEB_CALL(); 

} 
private void checkedRadioButton() { 
    int ans=1; 
    int ans1=sharedPreferences.getInt("Ans",ans); 



    if(optionOne.getId()==ans1) 
    { 

     optionOne.setChecked(true); 


    } 
} 

저를 도와주세요. 고마워.

답변

1

각 라디오 버튼 옵션 optionOne.setTag ("answer_tag", "one")에 태그를 추가하십시오. 선택한 태그를 저장하고 radiobuttons.getTag ("answer_tag")를 저장된 태그와 비교하십시오.