2017-01-03 4 views
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); 
    } 
} 

ответ

0

Это 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#oncreate для получения дополнительной информации

0

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

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

Just refer this developer page, you will get clear idea about this

+0

@KarlssonMakhno Вы можете только хранить данные внутри onSaveInstanceState(), и вы можете получить его из OnCreate() & onRestoreInstanceState(); –

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"); 

}