簡體   English   中英

在方向更改時保存陣列

[英]Saving Array on Orientation Change

我對Java / Android開發/編程非常陌生。 最近,我正在研究本書中的教程,並試圖解決文本范圍之外的問題。 我遇到了問題。

關於方向更改,我希望使用onSaveInstanceState保存字符串和布爾數組,並且..嗯,我不知道如何。 putArray似乎僅可用於一種類型的數據( putIntArrayputBooleanArray等),而我對如何解決此問題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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM