安卓 : Saving data in onSavedInstance

标签 android savestate

我不知道如何将 bean 类的对象保存在 onSavedInstance 中,并通过将 savedInstanceState 检查为 null 在 onCreate 中将其取回。

到目前为止,我一直在尝试这段代码,但无法保存/检索值:-

public class BookActivity extends Activity{

private ArrayList<Bitmap> bitmaps = null;
private ArrayList<Book> bookData = null;  //Book is the bean class
private TextView bookTitle = null;
private ArrayList<Feature> bookIds = null; // Another bean class

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    savedInstanceState.putSerializable("bookThumb", bookData);
    savedInstanceState.putSerializable("bookBitmaps", bitmaps);
    savedInstanceState.putSerializable("featureBook", bookIds);
  super.onSaveInstanceState(savedInstanceState);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.penguin_main);

    if(savedInstanceState!=null){
    bookData = (ArrayList<String>) savedInstanceState.getSerializable("bookThumb");
    bookData = (ArrayList<String>) savedInstanceState.getSerializable("bookThumb");
    bookData = (ArrayList<String>) savedInstanceState.getSerializable("bookThumb");
    }
    else{
        Toast msg = Toast.makeText(getApplicationContext(), "Values Not Restored!!!", Toast.LENGTH_LONG);
        msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);
        msg.show();
        }
}

我应该怎么做才能保存我的位图和 Book 的对象,以便它不会在方向更改时创建类的新实例?

最佳答案

您可以将它们保存为 Parcelable ArrayLists

savedInstanceState.putParcelableArrayList("bookThumb", bookData);
savedInstanceState.putParcelableArrayList("bookBitmaps", bitmaps);
savedInstanceState.putParcelableArrayList("featureBook", bookIds);

不过,您的 BookFeature 类需要实现 Parcelable 才能工作。 Bitmap 已经是一个 parcelable 类

关于安卓 : Saving data in onSavedInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384084/

相关文章:

android - 如何将 ORMLite 与 android 集成

android - 应用程序被杀死时地理围栏不起作用

android - <span> 中的文本仅在 android kitkat 上的 WebView 中分成两行

android - Ember.js HTM5 的 UI 框架建议 => Phone Gap 应用程序(或替代堆栈)

android - 保存 NestedScrollView 的滚动状态

android - 保存/恢复 fragment 状态 android

android - 谷歌播放服务: TokenActivity appears empty when asking for auth

python - 保存和加载类实例

java - 保存数据并在重启 Android 应用程序后使用它

android - 停留在方向更改的最后一个选项卡上,但不停留在应用程序启动时