SherlockFragmentActivity,拒绝onTabSelected中的标签更改

时间:2013-05-05 21:58:50

标签: android android-intent actionbarsherlock

我有一个标签栏,其中1个标签在新活动中打开相机。选中此选项卡后,我希望拒绝该选项卡选项,并且希望之前选择的选项卡保持选中状态。

我有一个activeFragment变量,我尝试用它来重新选择之前使用getSupportActionBar().setSelectedNavigationItem(0);选择的标签但这不起作用。我已经尝试在选择CAMERA选项卡时不调用ft.commit(),但这也不起作用。如何拒绝此选项卡被选中,或者至少立即重新选择之前选择的选项卡?

非常感谢!

1 个答案:

答案 0 :(得分: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);
        }
    }