天天看点

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

}

}

}

}