[英]Saving Array on Orientation Change
我對Java / Android開發/編程非常陌生。 最近,我正在研究本書中的教程,並試圖解決文本范圍之外的問題。 我遇到了問題。
關於方向更改,我希望使用onSaveInstanceState
保存字符串和布爾數組,並且..嗯,我不知道如何。 putArray
似乎僅可用於一種類型的數據( putIntArray
, putBooleanArray
等),而我對如何解決此問題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),
};
有一個簡單的選擇嗎? 我有什么選擇?
首先,確保您的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);
}
你TrueFalse
類需要實現Parcelable接口。 完成此操作后,我相信您可以使用savedInstanceState.putExtra(String key,Parcelable[] yourArray)
您也可以實現Serializable,但是據我所知,存在一些性能問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.