Использование панели действий в качестве кнопки "вверх", функция "home" saveInstanceState всегда равна нулю
Действие A === кнопка щелчка === > Активность B
При нажатии кнопки возврата активность А не воссоздается.
При нажатии кнопки "вверх" в качестве кнопки "вверх" активна операция "А".
Итак, я сохраняю состояние, когда A.onSaveInstanceState(Bundle outState)
, и использовать состояние, когда A.onRestoreInstanceState(Bundle savedInstanceState).
Сохранение и использование отлично работают (кроме кнопки "Домой как вверх" )
.
Однако
При нажатии кнопки вверх,
система воссоздает активность A, а savedInstanceState не работает.
Как я могу использовать состояние сохраненного экземпляра?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// I do not want this...
// Home as up button is to navigate to Home-Activity not previous acitivity
super.onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
Ответы
Ответ 1
В onCreate() включить домашнюю кнопку.
@Override
public void onCreate(Bundle savedInstanceState) {
...
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
В методе onOptionItemSelected() сделайте это.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
Это должно включить навигацию вверх. Если вы хотите, чтобы родительская активность была восстановлена с помощью файла savedInstanceState. Вы должны установить launchMode="singleTop"
в родительской активности в файле манифеста.
Для получения дополнительной информации http://developer.android.com/: Предоставление навигации вверх
Ответ 2
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar Up/Home button
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Я использовал финал(), внедренный NavUtils;