Как установить активный элемент в выпадающей навигации Action Bar?

Я пытаюсь решить проблему с перезапуском активности при смене ориентации.

У меня есть 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;
}

Хотя я не уверен, что это лучшее решение.

41
задан Roman 27 January 2012 в 22:05
поделиться