Hi I'm trying to create an app for Android and in order to develop it i need to navigate through different pages and questions. For this task I have defined a radiogroup with some radiobuttons. What I want to obtain is each question answered radiobutton and when the user goes thorugh differentes pages the value can be retrieved. I have tried this code that consists of that if there is one selected radiobutton, there arent created new radiobuttons (radiobuttons checked false). However with this code, there is always a selected answer so there is always the same radiobutton selected. I will appreciate some help.
radBotA.setOnCheckedChangeListener(radioCheckChangeListener); radBotB.setOnCheckedChangeListener(radioCheckChangeListener); radBotC.setOnCheckedChangeListener(radioCheckChangeListener); radBotD.setOnCheckedChangeListener(radioCheckChangeListener); radBotA.setOnClickListener(radioClickListener); radBotB.setOnClickListener(radioClickListener); radBotC.setOnClickListener(radioClickListener); radBotD.setOnClickListener(radioClickListener); if (radBotA.isChecked()){ Answers[position]="A"; } else if(radBotB.isChecked()){ Answers[position]="B"; } else if(radBotB.isChecked()){ Answers[position]="C"; } else if(radBotC.isChecked()){ Answers[position]="D"; } else if(radBotD.isChecked()){ Answers[position]="D"; } else { radBotA.setChecked(false); radBotA.setChecked(false); radBotA.setChecked(false); radBotA.setChecked(false); } bPrevious.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { position = position -1; questions.Previous(); currentQuestion(); } }); bNext.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { position = position +1; questions.Next(); currentQuestion(); } }); private void currentQuestion() { if (position==0){ bPrevious.setVisibility(View.GONE); }else{ bPrevious.setVisibility(View.VISIBLE); } if (position==nPreguntas-1){ bNext.setVisibility(View.GONE); }else{ bNext.setVisibility(View.VISIBLE); } questions.currentQuestion(this, category); enunciado.setImageResource(Enunciado[position]); pregunta.setText(questions.getPregunta()); final RadioButton radBotA = new RadioButton(this); final RadioButton radBotB = new RadioButton(this); final RadioButton radBotC = new RadioButton(this); final RadioButton radBotD = new RadioButton(this); radBotA.setText("A. " + questions.getRespuestaA()); radBotB.setText("B. " + questions.getRespuestaB()); radBotC.setText("C. " + questions.getRespuestaC()); radBotD.setText("D. " + questions.getRespuestaD()); String nprueba = "Item " + questions.getId() + " de "+ nPreguntas; NombrePrueba.setText(nprueba); if (radBotA.isChecked()){ Answers[position]="A"; } else if(radBotB.isChecked()){ Answers[position]="B"; } else if(radBotB.isChecked()){ Answers[position]="C"; } else if(radBotC.isChecked()){ Answers[position]="D"; } else if(radBotD.isChecked()){ Answers[position]="D"; } else { radBotA.setChecked(false); radBotA.setChecked(false); radBotA.setChecked(false); radBotA.setChecked(false); } } thank you all for your time
Edit:
public void save(){ SharedPreferences settings = getSharedPreferences("Answers", 0); SharedPreferences.Editor e = settings.edit(); e.putBoolean("A0",radBotA.isChecked()); e.putBoolean("B0",radBotB.isChecked()); e.putBoolean("C0",radBotC.isChecked()); e.putBoolean("D0",radBotD.isChecked()); e.putBoolean("A1",radBotA.isChecked()); e.putBoolean("B1",radBotB.isChecked()); e.putBoolean("C1",radBotC.isChecked()); e.putBoolean("D1",radBotD.isChecked()); e.putBoolean("A2",radBotA.isChecked()); e.putBoolean("B2",radBotB.isChecked()); e.putBoolean("C2",radBotC.isChecked()); e.putBoolean("D2",radBotD.isChecked()); e.putBoolean("A3",radBotA.isChecked()); e.putBoolean("B3",radBotB.isChecked()); e.putBoolean("C3",radBotC.isChecked()); e.putBoolean("D3",radBotD.isChecked()); public void load(){ SharedPreferences settings = getSharedPreferences("Answers", 0); boolean answerA0 = settings.getBoolean("A0", false); boolean answerB0 = settings.getBoolean("B0", false); boolean answerC0 = settings.getBoolean("C0", false); boolean answerD0 = settings.getBoolean("D0", false); boolean answerA1 = settings.getBoolean("A1", false); boolean answerB1 = settings.getBoolean("B1", false); boolean answerC1 = settings.getBoolean("C1", false); boolean answerD1 = settings.getBoolean("D1", false); boolean answerA2 = settings.getBoolean("A2", false); boolean answerB2 = settings.getBoolean("B2", false); boolean answerC2 = settings.getBoolean("C2", false); boolean answerD2 = settings.getBoolean("D2", false); boolean answerA3 = settings.getBoolean("A3", false); boolean answerB3 = settings.getBoolean("B3", false); boolean answerC3 = settings.getBoolean("C3", false); boolean answerD3 = settings.getBoolean("D3", false); However I don't know how to continue. I v' thinking about the following code but it gives me error and where posicion is the "Page Number":
public void Test(){ switch(posicion){ case(0): if(answerA0==true){ e.putBoolean("A0",radBotA.isChecked()); } } } }