我是Java / Android开发/编程的新手。最近我正在从书中学习教程,并尝试解决文本范围之外的问题。我遇到了问题。
在方向改变时,我希望使用onSaveInstanceState
保存一个字符串和布尔数组,并且......好吧,我不知道怎么做。 putArray
似乎仅适用于一种类型的数据(putIntArray
,putBooleanArray
等),而我对如何解决此问题感到迷茫。
我想保存的数组:
private static TrueFalse[] mQuestionBank = new TrueFalse[]{
new TrueFalse(R.string.question_oceans, true, false),
new TrueFalse(R.string.question_africa, false, false),
new TrueFalse(R.string.question_america, true, false),
new TrueFalse(R.string.question_mideast, false, false),
new TrueFalse(R.string.question_asia, true, false),
};
有一个简单的选择吗?我有什么选择?
答案 0 :(得分:0)
首先,确保您的TrueFalse
类实现Serializable
。
然后你可以将数组放在onSaveInstanceState()上,然后在onRestoreInstanceState()
上执行它。@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putSerializable("my_array", mQuestionBank);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
mQuestionBank = savedInstanceState.getSerializable("my_array");
super.onRestoreInstanceState(savedInstanceState);
}
答案 1 :(得分:0)
您的TrueFalse
课程需要实施Parcelable界面。完成后,我相信您可以使用savedInstanceState.putExtra(String key,Parcelable[] yourArray)
您也可以实现Serializable,但据我所知,存在一些性能问题。