我想在Bundle中保存一些布尔变量,即savedInstaceState,我可以在方向改变后使用它们。
我尝试过但始终将savedInstanceState结果保存为空
if(savedInstanceState==null){
savedInstanceState=new Bundle();
savedInstanceState.putBoolean("isLogoLoaded",true);
}else{
savedInstanceState.putBoolean("isLogoLoaded",true);
}
请提供更好的方式谢谢。
答案 0 :(得分:2)
您可以使用以下代码保存要恢复的值 -
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("TEXT", user);
}
通过这个你可以得到那些值 -
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
savedUser = savedInstanceState.getString("TEXT");
Log.d("enregistred value", savedUser);
希望这会有所帮助:)
}
答案 1 :(得分:1)
您需要使用
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean("isLogoLoaded",true);
}
和
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
logo = savedInstanceState.getBoolean("isLogoLoaded");
}
答案 2 :(得分:1)
你用哪种方法称之为逻辑?
我猜是在onCreate()中,onCreate是你加载savedInstanceState的地方,它不是你保存数据的地方。 (您也可以在onRestoreInstanceState中加载它)
您想要保存数据 public void onSaveInstanceState(Bundle savedInstanceState){
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean("isLogoLoaded", true);
}
从这里http://developer.android.com/training/basics/activity-lifecycle/recreating.html