1

リクエストに応じてこのメソッドに与えられたバンドルを取得する方法 (Bundle outState)?

@Override
protected void onSaveInstanceState(***Bundle outState***) {
    super.onSaveInstanceState(outState);

    // Only if you need to restore open/close state when
    // the orientation is changed
    if (adapter != null) {
        adapter.saveStates(outState);
    }
}
4

3 に答える 3

0

Bundle インスタンスでは、データを渡して onCreate() メソッドで取得できます。次のように

outState.putString("key1", "data1");
outState.putBoolean("key2", "data2");
outState.putInt("key3", "data3");

そしてonCreateで次のように取得します

if (savedInstanceState != null){
            data_1 =  savedInstanceState.getString("keys1");
            data_2 =  savedInstanceState.getBoolean("keys2");
            data_3 =  savedInstanceState.getInt("keys3");

}
于 2017-01-03T12:11:57.933 に答える
0

これは、アクティビティのメソッドでBundle送信されます。OnCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        savedInstanceState.getString("bla");
    }
}

以前の状態がなかったため、最初にアクティビティを作成したときに null になるため、null を確認する必要があることに注意してください。

詳細については、 https://developer.android.com/guide/components/activities/activity-lifecycle.html#oncreateを参照してください

于 2017-01-03T12:08:30.940 に答える
0

以下の方法を使用して、保存されたバンドルを元に戻すことができます。

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) {
// get your saved bundles back here
} 

この開発者ページを参照するだけで、これについて明確なアイデアが得られます

于 2017-01-03T12:08:52.387 に答える