Как получить экземпляр состояния активности (комплект) по запросу?

Как получить пакет, который предоставляется этому методу по запросу (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);
    }
}

3 ответа

Это Bundle отправлено в OnCreate метод в вашей деятельности.

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

Обратите внимание, что вам нужно будет проверить наличие нулевого значения, поскольку при первом создании действия оно будет иметь нулевое значение, поскольку предыдущего состояния не было.

см. https://developer.android.com/guide/components/activities/activity-lifecycle.html для получения дополнительной информации

В экземпляре 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");

}

Вы можете получить сохраненный пакет обратно, используя метод ниже:

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

Просто обратитесь к этой странице разработчика, вы получите четкое представление об этом

Другие вопросы по тегам