我有一个测验应用程序,它将多项选择题(下面TextView
有 5 个选项)显示为 a中的RadioButtons
片段。FragmentStatePagerAdapter
ViewPager
我得到的错误仅在片段恢复时出现。向前滑动,它会完美地加载每个问题和所有 5 个选项。然而,当它恢复时,它加载完全错误,所有 5RadioButtons
显示相同的文本,特别是最后一个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 的更多代码或其他任何内容,请告诉我。我似乎无法找出导致此问题的原因,非常感谢您的帮助!