2016-07-06 31 views

答えて

2

アプリケーションの状態をバンドル(通常はonSaveInstanceStateの非永続的な動的データ)に保存すると、アクティビティを再作成する必要がある場合(たとえば向きの変更)、onCreateに戻すことができますこの事前情報を失うことはありません。データが供給されなかった場合、savedInstanceStateはnullです。基本的にNVP(「名前を格納する方法です

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    // Save UI state changes to the savedInstanceState. 
    // This bundle will be passed to onCreate if the process is 
    // killed and restarted. 
    savedInstanceState.putBoolean("MyBoolean", true); 
    savedInstanceState.putDouble("myDouble", 1.9); 
    savedInstanceState.putInt("MyInt", 1); 
    savedInstanceState.putString("MyString", "Welcome back to Android"); 
    // etc. 
} 

バンドル:

は、あなたがこのようなバンドルパラメータに変更するアプリケーションの状態値をonSaveInstanceState(バンドルsavedInstanceState)をオーバーライドして記述する必要がありますこのバンドルオブジェクトがどのように

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    // Restore UI state from the savedInstanceState. 
    // This bundle has also been passed to onCreate. 
    boolean myBoolean = savedInstanceState.getBoolean("MyBoolean"); 
    double myDouble = savedInstanceState.getDouble("myDouble"); 
    int myInt = savedInstanceState.getInt("MyInt"); 
    String myString = savedInstanceState.getString("MyString"); 
} 
+0

しかし、先生、私がいることを知りたい: - 値ペア」)マップ、それはあなたがこのような値を抽出したいものonCreate()とonRestoreInstanceState()に渡されます作成されました... –

+0

アクティビティオブジェクトの作成 –

関連する問題