ActionBar导航标签项,用于启动活动?

时间:2011-12-28 16:06:54

标签: android android-fragments android-actionbar

我有一个使用ActionBarSherlock来显示带有导航标签的操作栏的活动。我需要其中一个标签来点击它时打开另一个活动(接管整个屏幕)。我构建了一个自定义TabListener来实现这一点,但是当最初呈现标签内容时它会触发,而不仅仅是在手动选择它时。

我看不到捕获传统onClick事件的方法,所以我假设我需要在TabListener中处理这个问题并以某种方式区分初始选择和后来的手动选择,但是如何?我可以在每次选择选项卡时使用计数器,并且只有在计数器高于零时才启动辅助活动,但这看起来像一个丑陋的黑客。我希望有一种方法来处理“点击”而不是“选择”,因为后者既包括视图的初始显示,也包括后来的手动点击。

我将监听器附加到操作栏导航选项卡,如下所示:

tab.setTabListener(new TabDiseaseSelectorListener(this));

然后听众看起来像这样:

    public class TabDiseaseSelectorListener implements ActionBar.TabListener {
    private final Activity mActivity;

    public TabDiseaseSelectorListener(Activity activity) {
        mActivity = activity;
    }

    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction unused) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setClass(mActivity, DiseaseSelector.class);
        startActivity(intent);
    }

    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction unused) {
    }

    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
    }
}

我尝试使用onTabReselected(),但只有在选项卡已被选中且用户再次点击它时才会触发。

0 个答案:

没有答案