使用TabListener通过ActionBarSherlock触发活动

时间:2012-10-22 15:49:28

标签: android android-activity tabs actionbarsherlock

我在使用ActionBarSherlock找到一个我理解的例子时遇到了一些麻烦。我可以实现下载附带的TabNavigation.java示例。我不确定如何扩展此示例,以便它触发新活动但仍保持显示标签。以下是我实施的示例:

package com.actionbarsherlock.sample.demos;

import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.widget.TextView;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockActivity;

public class TabNavigation extends SherlockActivity implements ActionBar.TabListener {
    private TextView mSelected;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setTheme(SampleList.THEME); //Used for theme switching in samples
        super.onCreate(savedInstanceState);

        setContentView(R.layout.tab_navigation);
        mSelected = (TextView)findViewById(R.id.text);

        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        for (int i = 1; i <= 3; i++) {
            ActionBar.Tab tab = getSupportActionBar().newTab();
            tab.setText("Tab " + i);
            tab.setTabListener(this);
            getSupportActionBar().addTab(tab);
        }
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction transaction) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction transaction) {
        mSelected.setText("Selected: " + tab.getText());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
    }
}

我相信我需要创建一个新的“Listener”类并将其传递给.setTabListener()方法。我想坚持使用Activities(而不是Fragments),因为我有一个非常复杂的ORMLite实现,我不知道如何使用ORMLite和Fragments。

我想添加一个标有“个人资料”的新标签,该标签会触发ProfileActivity.class

提前致谢!

2 个答案:

答案 0 :(得分:0)

这听起来像是我找不到我正在寻找的例子的原因是因为你不能持久地使用活动栏。评论或更好的答案将不胜感激。 :)

答案 1 :(得分:0)

我猜TabListener应该与Fragments和FragmentTransaction一起使用。您必须将代码从ProfileActivity移动到新的ProfileFragment类,并将其与侦听器收到的FragmentTransaction一起添加。

我建议您在项目中添加ViewPagerIndicator库,就像this answer一样。 ViewPager就像制表符加上用于在它们之间导航的swype移动。