2015-01-05 4 views
0

Как я могу получить последнюю выбранную вкладку «Панель действий», с которой я перехожу к следующей вкладке ?.Как получить последнюю выбранную вкладку панели действий?

что я пробовал:

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     adapter = new FragmentPagerAdapter(getSupportFragmentManager(), 
       title); 

     viewPager = (ViewPager) findViewById(R.id.pager); 
     viewPager.setAdapter(adapter); 
     viewPager 
       .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 

        /* (non-Javadoc) 
        * @see android.support.v4.view.ViewPager.SimpleOnPageChangeListener#onPageSelected(int) 
        */ 
        @Override 
        public void onPageSelected(int position) { 
         // TODO Auto-generated method stub 
         actionBar.setSelectedNavigationItem(position); 
        } 

       }); 

     for (int i = 0; i < adapter.getCount(); i++) { 



      ActionBar.Tab tab = actionBar.newTab(); 

      tab.setText(adapter.getPageTitle(i)); 
      tab.setTabListener(this); 
      actionBar.addTab(tab); 

     } 

    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 
     viewPager.setCurrentItem(tab.getPosition()); 

     // here How Can I get previous selected tab from which I am navigating 

     } 

Так onTabSelected() метод Как я могу узнать, из которого Tab Я переходите к этому Tab.Is, есть ли способ?

ответ

2

Вы можете создать поле называется

int fLastTab = -1; 

Это поле можно обновить в функции onTabSelected

public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 
    viewPager.setCurrentItem(tab.getPosition()); 

    // Here you can check the value of fLastTab, 
    // if fLastTab == -1 there wasn't any last selected tab 
    // and if it has another value you have the last selected tab 
    // at the end of this function you will update the value of fLastTab 

    // Doing somenthing with fLastTab.... 

    fLastTab = tab.getPosition(); 

} 

Там есть еще один способ, вы можете переопределить функцию

public void onTabUnselected(Tab tab, FragmentTransaction ft){ 

    // Doing somenthing with the last selected action bar tab (tab.position())... 

} 

где у вас есть позиция вкладки, которая выходит из выбранного состояния. onTabUnselected

+0

Спасибо. ты помог мне. – offset

Смежные вопросы