複数の選択肢の質問 (以下の選択肢としてTextView
5 つ) を内のRadioButtons
フラグメントとして表示するクイズ アプリがあります。FragmentStatePagerAdapter
ViewPager
私が得ているエラーは、フラグメントが復元されたときだけです。前方にフリックすると、各質問と 5 つの選択肢すべてが完全に読み込まれます。ただし、復元中は完全に間違ってロードされ、5つすべてRadioButtons
が同じテキスト、特に最後のRadioButton
. このエラーが発生する理由はわかりませんが、スーパークラスへの呼び出しに関係しているのではないかと考えていますが、これは単なる推測です。
コードは次のとおりです。
OnCreateView
logcat によって決定されたテキストを正しく設定します。
for (String s : aArray) {
// Runs through a string array of the 5 answers
LinearLayout l = lArray.get(pos);
RadioButton r = (RadioButton) l.findViewById(R.id.radio);
Log.d(s, correctanswer);
//Log tag shows that the choices during initial creation or **restore** are the different 5 answers
r.setText(s);
}
return rootView;
次に、これは私のものOnViewStateRestored
です:
public void onViewStateRestored(Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
for (LinearLayout l : lArray) {
RadioButton r = (RadioButton) l.findViewById(R.id.radio);
Log.e(r.getText().toString(), correctanswer);
//Suddenly the displayed text is the same for all 5 buttons
if (r.isChecked())
r.performClick();
//android automatically saves check status. for full restore I click all the buttons
}
}
OnCreateView などからさらにコードが必要な場合は、お知らせください。この問題の原因がわかりません。ご協力いただきありがとうございます。