2013-05-05 2 views
0

У меня есть таба, где 1 вкладка открывает камеру в новом действии. Когда эта вкладка выбрана, я хочу, чтобы этот вкладка была отклонена, и она хочет, чтобы вкладка, которая была выбрана ранее, оставалась выбранной.SherlockFragmentActivity, отклонение вкладки в onTabSelected

У меня есть переменная activeFragment, которую я попытался использовать, чтобы повторно выбрать вкладку, которая была выбрана ранее, с помощью getSupportActionBar().setSelectedNavigationItem(0); Но это не сработает. Я попробовал НЕ называть ft.commit(), когда выбрана вкладка CAMERA, но это тоже не сработает. Как я могу отклонить эту вкладку от выбора или, по крайней мере, немедленно переустановить вкладку, которая была выбрана ранее?

Большое спасибо!

ответ

0

Для повторного выбора вкладки в onTabSelected() при реализации вкладки не разрешается выбрать еще, я обнаружил, вы можете использовать что-то вроде этого:

@Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     boolean bOK = true; 
     if (tab.getPosition() == 1) { 
      if (!checkReadyToChangeTab()) { 
       Toast.makeText(activity, "Cannot change tab!", Toast.LENGTH_SHORT).show(); 
       bOK = false; 
       // reselect tab 0 
       final Handler handler = new Handler(); 
       final Runnable runnable = new Runnable() { 
        public void run() { 
         getSupportActionBar().selectTab(getSupportActionBar().getTabAt(0)); 
        } 
       }; 
       handler.postDelayed(runnable, 10); 
      } 
     } 
     if (bOK) { 
      ft.replace(R.id.fragment_container, fragment); 
     } 
    }