Java 切换选项卡时更改操作栏的文本

Java 切换选项卡时更改操作栏的文本,java,android,android-actionbar,Java,Android,Android Actionbar,我有一个带标签的操作栏 actionBar = getActionBar(); // Hide Actionbar Icon actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(true); // Create Actionbar Tabs actionBar.setNavigationMode(ActionBar.NAVIGATION_M

我有一个带标签的操作栏

    actionBar = getActionBar();

    // Hide Actionbar Icon
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(true);
   // Create Actionbar Tabs
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Create first Tab
    tab = actionBar.newTab().setTabListener(new BusinessActivity());
    // Create your own custom icon
//    tab.setIcon(R.drawable.business);
    tab.setText("Business");
    actionBar.addTab(tab);
我的示例中的BusinessActivity类是extends Fragment

切换选项卡时如何更改操作栏标题?

谢谢。

我想:

getActionBar().setTitle("Title");

当您切换标签时,请拨打电话

ActionBar actionBar = getActionBar();
actionBar.setTitle("Your new title");
例如:

public class Test extends Activity implements ActionBar.TabListener{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        getActionBar().setDisplayShowTitleEnabled(true);

        ActionBar.Tab t1 = getActionBar().newTab().setText("Tab1").setTabListener(this);
        ActionBar.Tab t2 = getActionBar().newTab().setText("Tab2").setTabListener(this);
        ActionBar.Tab t3 = getActionBar().newTab().setText("Tab3").setTabListener(this);

        getActionBar().addTab(t1);
        getActionBar().addTab(t2);
        getActionBar().addTab(t3);

    }

    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
        getActionBar().setTitle(tab.getText());
    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }
}
结果:


您不应该调用“new BusinessActivity()”。您应该创建一个匿名类,或者将其设置为当前实例。谢谢,但是如果将其设置为此,我将如何设置选项卡以打开新活动?我的意思是它应该在当前上下文中运行。例如,如果此代码位于名为“MainActivity”的活动中,则应将参数设置为“MainActivity.this”。在任何情况下,都不应创建活动(或服务、广播接收器、内容提供者或应用程序)的新实例。它们是由框架自动创建的。但我再次问,当我按下选项卡时,如何启动其他活动。我的意思是,不仅要更改actionbar的标题,还要在更改标题的同一块中启动新活动,只需调用“startActivity(new Intent(…,…)”。这完全取决于您在此处发布的代码。因为我不知道周围的环境是什么,所以我不能确切地告诉你该写什么。如果这是外部类的一部分,则应将当前活动作为参数发送,或者改用应用程序上下文。