Вкладки Android ActionBar устанавливают изначально выбранную вкладку

Я заметил, что при использовании

actionBar.setSelectedNavigationItem(x)

в методе onCreate() моей Activity элемент вкладки в позиции 0 всегда выбирается первым, а затем загружается элемент вкладки в позиции x. Это означает, что (поскольку я использую фрагменты) загружаются 2 фрагмента. Один из них ненужный...

Вот мой код:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Determine which bundle to use; either the saved instance or a bundle
    // that has been passed in through an intent.
    Bundle bundle = getIntent().getExtras();
    if (bundle == null) {
        bundle = savedInstanceState;
    }

    // Initialize members with bundle or default values.
    int position;
    if (bundle != null) {
        position = bundle.getInt("selected_tab");
    } else {
        position = 0;
    }

    // Set the tabs.
    ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    Tab tab = actionBar
            .newTab()
            .setText("Tab 1")
            .setTabListener(
                    new TabListener<RendersGridFragment>(this, "1",
                            RendersGridFragment.class));
    actionBar.addTab(tab);

    tab = actionBar
            .newTab()
            .setText("Tab 2")
            .setTabListener(
                    new TabListener<RendersGridFragment>(this, "2",
                            RendersGridFragment.class));
    actionBar.addTab(tab);

    tab = actionBar
            .newTab()
            .setText("Tab 3")
            .setTabListener(
                    new TabListener<RendersGridFragment>(this, "3",
                            RendersGridFragment.class));
    actionBar.addTab(tab);

    actionBar.setSelectedNavigationItem(position);
}

Кажется, что вкладка в позиции 0 выбрана изначально по умолчанию. Но, как вы можете видеть, я передаю пакеты, чтобы убедиться, что последняя выбранная вкладка по-прежнему выбрана при повторном запуске метода onCreate().

Например, если последняя выбранная вкладка находится в позиции 2, запускается onCreate() и загружается вкладка в позиции 0, затем загружается вкладка в позиции 2.

Как сделать так, чтобы панель ActionBar не выбирала сначала вкладку в позиции 0 при использовании actionBar.setSelectedNavigationItem(position).

22
задан mdupls 27 March 2012 в 19:04
поделиться