2012-05-31 4 views
2

Я использую getLastNonConfigurationInstance() для сохранения объекта при изменении ориентации в своей деятельности. теперь он устарел. Каков наилучший способ альтернативы? в документации указано «Использовать фрагмент». Но мне нужно использовать активность.Изменения ориентации в android

ответ

3

Для сохранения состояния используйте onSaveInstanceState(Bundle savedInstanceState). Вы можете восстановить сохраненное состояние либо в onCreate, либо в onRestoreInstanceState(Bundle savedInstanceState).

@Override 
    public void onSaveInstanceState(Bundle 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", "Hello Android"); 
     super.onSaveInstanceState(savedInstanceState); 
    } 

Bundle по существу является способом хранения «карты Key-Value Pair, и он будет получать передаваемый в OnCreate, а также onRestoreInstanceState где вы бы извлечь значения, как это:

@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

Спасибо, vipul, он отлично работает :) –

+0

Добро пожаловать :) –

Смежные вопросы