Intereting Posts
Всегда показывать заголовок маркера карты в Android Eclipse Indigo не может импортировать maven android, который строит ОК в командной строке "Http: // {root_dir} / oauth / token" Файл не найден в Magento для регистрации приложения REST API Android: RecyclerView внутри ScrollView Проблема с утечкой базы данных Content Content Provider Можно ли использовать MapView без расширения MapActivity? Обфускация в Android Studio Андроидальная анимация изображения по сравнению с центральной точкой Как найти высоту строки состояния в Android через React Native? Android: как передать данные в под-мероприятия? Создайте поток пользовательского интерфейса вручную в Android, чтобы увеличить его размер небольшого стека Как работает многопоточность в Android? BroadcastReceiver onReceive () получает вызов дважды Можно ли использовать вектор, который можно использовать так же, как я использовал 9 патчей? Реальная пользовательская форма кнопки

Android ActionBar со списком навигации: сохранить выбранную позицию позиции во время изменения конфигурации?

У меня есть ActionBar со списком режима навигации. Проблема заключается в том, что после выбора элементов из навигационного счетчика, когда меняется ориентация экрана, выбранный индекс поворота навигатора сбрасывается на 0.

Как сохранить выбранный индекс счетчика во время изменений конфигурации?

благодаря

Solutions Collecting From Web of "Android ActionBar со списком навигации: сохранить выбранную позицию позиции во время изменения конфигурации?"

Вы должны переопределить onSaveInstanceState и сохранить выбранную позицию списка навигации для onSaveInstanceState . Не забудьте восстановить позицию в onCreate .

Посмотрите пример ниже:

 public class MainActivity { private static final String CURRENT_FRAGMENT_TAG = "fragmentPosition"; @Inject @Named("navigationFragments") private Provider<? extends Fragment>[] fragmentProviders; @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); final ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks(ArrayAdapter.createFromResource( this, R.array.navigation_menu, android.R.layout.simple_list_item_1), new ActionBar.OnNavigationListener() { @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { final String fragmentTag = "fragment-" + itemPosition; // to prevent fragment re-selection and loosing early saved state if (getSupportFragmentManager().findFragmentByTag(fragmentTag) != null) { return true; } final Fragment fragment = fragmentProviders[itemPosition].get(); getSupportFragmentManager().beginTransaction(). replace(android.R.id.content, fragment, fragmentTag). commit(); return true; } }); actionBar.setSelectedNavigationItem(bundle != null ? bundle.getInt(CURRENT_FRAGMENT_TAG) : 0); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(CURRENT_FRAGMENT_TAG, getSupportActionBar().getSelectedNavigationIndex()); } /* Additional stuff here */ } 

Provider<? extends Fragment>[] fragmentProviders Provider<? extends Fragment>[] fragmentProviders – это список объектов фабричных методов, которые создают новый фрагмент. Замените getSupportActionBar() на getActionBar() и getSupportFragmentManager() на getFragmentManager() если вы не используете actionbarsherlock