Android设置屏幕旋转后保存数据

一、onCreate()方法中最后判断须要保存的状态值ide

if(savedInstanceState != null){
    mCurrentIndex = savedInstanceState.getInt(KEY_INDEX,0);
}


二、在onCreate()方法后重写onSaveInstanceState(Budle)方法spa

@Override
public void onSaveInstanceState(Bundle savedInstanceState){
    super.onSaveInstanceState(savedInstanceState);
    Log.i(TAG,"onSaveInstanceState");
    savedInstanceState.putInt(KEY_INDEX,mCurrentIndex);

原理:全部activity的视图将自身的状态数据保存在Budle对象中,这样屏幕旋转就不会丢失反转前的数据。.net


须要注意的地方:3d

  • 咱们在Bundle中存储和恢复的数据类型只能是基本数据类型(primitive type)以及能够实现Serializable接口的对象。
  • 建立本身的定制类时,如需onSaveInstanceState()方法中保存类对象,须要实现Serializable接口。



相关文章
相关标签/搜索