Android SherlockFragmentActivity,拒绝在OnTable中更改选项卡
我有一个选项卡栏,其中1个选项卡在新活动中打开相机。选择此选项卡时,我希望该选项卡选择被拒绝,并且希望先前选择的选项卡保持选中状态 我有一个Android SherlockFragmentActivity,拒绝在OnTable中更改选项卡,android,android-intent,actionbarsherlock,Android,Android Intent,Actionbarsherlock,我有一个选项卡栏,其中1个选项卡在新活动中打开相机。选择此选项卡时,我希望该选项卡选择被拒绝,并且希望先前选择的选项卡保持选中状态 我有一个activeFragment变量,我尝试使用该变量重新选择以前使用getSupportActionBar()选择的选项卡。setSelectedNavigationItem(0)但这不起作用。我试着在选中相机选项卡时不调用ft.commit(),但这也不起作用。如何拒绝选择此选项卡,或者至少立即重新选择以前选择的选项卡 非常感谢 要在onTabSelecte
activeFragment
变量,我尝试使用该变量重新选择以前使用getSupportActionBar()选择的选项卡。setSelectedNavigationItem(0)代码>但这不起作用。我试着在选中相机选项卡时不调用ft.commit()
,但这也不起作用。如何拒绝选择此选项卡,或者至少立即重新选择以前选择的选项卡
非常感谢 要在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);
}
}