可以通过onSaveInstanceState函数实现。
1、例如,保存Activity的theme,
在onSaveInstanceState函数中如下实现
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt("theme", mCurTheme);
}
2、在Activity的onCreate函数中将保存的值取出。
例如,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
mCurTheme = savedInstanceState.getInt("theme");
// Switch to a new theme different from last theme.
switch (mCurTheme) {
case android.R.style.Theme_Holo_Light:
mCurTheme = android.R.style.Theme_Holo_Dialog;
break;
case android.R.style.Theme_Holo_Dialog:
mCurTheme = android.R.style.Theme_Holo;
break;
default:
mCurTheme = android.R.style.Theme_Holo_Light;
break;
}
setTheme(mCurTheme);
}
setContentView(R.layout.activity_recreate);
}
其中mCurTheme是Activity的一个类变量,定义如下,
int mCurTheme;
3、在某处调用recreate函数。
例如,在如下按钮的监听器中,
private OnClickListener mRecreateListener = new OnClickListener() {
public void onClick(View v) {
recreate();
}
};
这样实现了保存Activity当前设置的theme的功能。