天天看點

android儲存按鈕狀态,Android:儲存單選按鈕的狀态

嗨,我正在嘗試為

Android建立一個應用程式,為了開發它,我需要浏覽不同的頁面和問題.對于這個任務,我已經定義了一個帶有一些radiobutton的radiogroup.我想要獲得的是每個問題都回答了radiobutton,當使用者進入不同的頁面時,可以檢索到該值.我已經嘗試過這個代碼,如果有一個標明的單選按鈕,則沒有建立新的單選按鈕(radiobuttons選中false).但是,使用此代碼時,始終會有一個標明的答案,是以始終選擇相同的單選按鈕.我會感激一些幫助.

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);

}

}

謝謝大家的時間

編輯:

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);

但是我不知道如何繼續.我v’考慮以下代碼,但它給了我錯誤,其中posicion是“頁碼”:

public void Test(){

switch(posicion){

case(0):

if(answerA0==true){

e.putBoolean("A0",radBotA.isChecked());

}

}

}

}