Я пытаюсь решить проблему с перезапуском активности при изменении ориентации.Как установить активный элемент в раскрывающемся меню панели действий?
У меня есть ActionBar
с раскрывающимся списком навигации и после каждого поворота активируется первый элемент этого списка. Содержание fragment
было не сложно, но я не знаю, как установить активный элемент списка.
Вот определение ActionBar
:
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
ArrayAdapter<CharSequence> list = ArrayAdapter
.createFromResource(this, R.array.action_list, android.R.layout.simple_dropdown_item_1line);
list.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
getActionBar().setListNavigationCallbacks(list, this);
А вот мой обходной путь:
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
if (!application.isRotated) {
application.activePosition = itemPosition;
application.activeId = itemId;
getFragmentManager().beginTransaction()
.replace(android.R.id.content, MyFragment.newInstance(itemPosition))
.commit();
} else {
application.isRotated = false;
this.onNavigationItemSelected(application.activePosition, application.activeId);
}
return true;
}
@Override
protected void onStop() {
super.onStop();
application.isRotated = true;
}
Я не уверен, что это лучшее решение, хотя.
Не могли бы вы размещая пример того, как вы получили эту работу? Я пытаюсь что-то вроде getActionBar(). SetSelectedNavigationItem (1), но он не имеет никакого эффекта. (Кто-то другой с той же проблемой здесь: http://stackoverflow.com/questions/8487425/actionbar-dropdown-spinner-item -defaults-to-first-item) – brk3
Конечно, обновил мой ответ. Кроме того, вы можете посмотреть исходный код моего приложения, чтобы узнать, как я его использую. https://github.com/Tsukanov/Simple-Counter/blob/master/src/me/tsukanov/counter/CounterActivity.java#L90 – Roman
Спасибо, это работает! Я предполагаю, что я, должно быть, делал неправильно, вызывал setSelectedNavigationItem перед добавлением адаптера.Был уверен, что я пробовал это так раньше, но хорошо, работает сейчас :) – brk3