私はクイズアプリケーションに取り組んでいます。次のボタンを含む各ページに質問とそのオプション(ラジオボタン)を表示しています。つまり、次のボタンをクリックすると、次の質問とそのオプションが表示されます。また、前のボタンを保持しました。しかし、戻るボタンで問題が発生しています。たとえば、最初の質問で 3 番目のオプションを選択して 2 番目の質問に進み、前のボタンをクリックして最初の質問に戻りました。選択した値は、最初の質問でなくなりました。選択したラジオボタンの値を保存するにはどうすればよいですか? また、戻るボタンまたは次のボタンを押したときにラジオボタンをチェック済み = true に保つにはどうすればよいですか? 私はこの問題に苦労しています。この点で私を助けてください。
選択したラジオ ボタンの値を整数変数に格納しています。
Code:
int selectedop1 = 0;
public void nextquestion() {
if (in < parts.length - 1) {
in++;
radiogroup.clearCheck();
optionslayout.removeView(radiogroup);
for (int a = 0; a < next2.length; a++) {
next3 = next2[a].trim().split("getchoce");
stringList5.add(next3[0]);
stringList6.add(next3[1]);
stringList7.add(next3[2]);
stringList8.add(next3[3]);
}
optionslayout = (LinearLayout) findViewById(R.id.chklnlayout);
tv.setText(Html.fromHtml(next4[1].replace("\\n", "<br>")));
tv.setTextColor(Color.parseColor("#000000"));
radiogroup = (RadioGroup) new RadioGroup(Test.this);
optionslayout.addView(radiogroup);
for (int p = 0; p < next2.length; p++) {
RadioButton newRadioButton = new RadioButton(Test.this);
newRadioButton.setText(stringList6.get(p));
newRadioButton.setTextColor(Color.parseColor("#000000"));
newRadioButton.setTextSize(15);
radbtn = Integer.parseInt(stringList5.get(p));
newRadioButton.setId(radbtn);
radiogroup.addView(newRadioButton);
}
radiogroup
.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup radioGroup,
int checkedId) {
for (int h = 0; h < radioGroup.getChildCount(); h++) {
RadioButton btn = (RadioButton) radioGroup
.getChildAt(h);
if (btn.getId() == checkedId) {
selectedop1 = btn.getId();
return;
}
}
}
});
}
else
{
System.out.println("Test completed");
}
}
Previous click:
public void previouscall(View v) {
in--;
if(in >1)
{
prevquestion();
}
}
public void prevquestion() {
if (in < parts.length - 1) {
radiogroup.clearCheck();
optionslayout.removeView(radiogroup);
next1 = parts[in].trim().split("getquopim");
next4 = next1[0].trim().split("getquessplit");
next2 = next1[1].trim().split("getidoptn");
optionslayout = (LinearLayout) findViewById(R.id.chklnlayout);
tv.setText(Html.fromHtml(next4[1].replace("\\n", "<br>")));
tv.setTextColor(Color.parseColor("#000000"));
radiogroup = (RadioGroup) new RadioGroup(Test.this);
optionslayout.addView(radiogroup);
for (int p = 0; p < next2.length; p++) {
RadioButton newRadioButton = new RadioButton(Test.this);
newRadioButton.setText(stringList6.get(p));
newRadioButton.setTextColor(Color.parseColor("#000000"));
newRadioButton.setTextSize(15);
radbtn = Integer.parseInt(stringList5.get(p));
newRadioButton.setId(radbtn);
radiogroup.addView(newRadioButton);
}
radiogroup
.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup radioGroup,
int checkedId) {
for (int h = 0; h < radioGroup.getChildCount(); h++) {
RadioButton btn = (RadioButton) radioGroup
.getChildAt(h);
if (btn.getId() == checkedId) {
selectedop1 = btn.getId();
return;
}
}
}
});
}
else
{
System.out.println("test completed");
}
}