从orientationInstancestate获取方向更改的布尔值

时间:2015-01-06 13:53:10

标签: android android-activity android-orientation

我想在Bundle中保存一些布尔变量,即savedInstaceState,我可以在方向改变后使用它们。

我尝试过但始终将savedInstanceState结果保存为空

if(savedInstanceState==null){
 savedInstanceState=new Bundle();
 savedInstanceState.putBoolean("isLogoLoaded",true);
 }else{
 savedInstanceState.putBoolean("isLogoLoaded",true);
}  

请提供更好的方式谢谢。

3 个答案:

答案 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