带固定标签的操作栏

时间:2012-08-07 11:17:52

标签: java android android-layout android-tabhost android-actionbar

现在,在我的应用程序中,我有一个TabActivity,其中包含三个固定标签,每个标签都包含标准Activity

以下是相关代码段:

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

    setContentView(R.layout.tab_activity);

    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost();  // The activity TabHost
    TabHost.TabSpec spec;  // Resusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab

    // Create an Intent to launch an Activity for the tab (to be reused)
    intent = new Intent().setClass(this, Tab1Activity.class);

    // Initialize a TabSpec for each tab and add it to the TabHost
    spec = tabHost.newTabSpec("tab1").setIndicator("Tab 1", res.getDrawable(R.drawable.Tab1Icon)).setContent(intent);
    tabHost.addTab(spec);

    // Do the same for the other tabs
    intent = new Intent().setClass(this, Tab2Activity.class);
    spec = tabHost.newTabSpec("tab2").setIndicator("Tab 2", res.getDrawable(R.drawable.Tab2Icon)).setContent(intent);
    tabHost.addTab(spec);

    intent = new Intent().setClass(this, Tab3Activity.class);
    spec = tabHost.newTabSpec("tab3").setIndicator("Tab 3", res.getDrawable(R.drawable.Tab3Icon)).setContent(intent);
    tabHost.addTab(spec);

    tabHost.setCurrentTab(0);
}

这样,每次我选择一个标签时,应用程序都会在屏幕上显示与该标签相关联的Activity

我想使用ActionBar设计模式来获得相同的结果。

现在我只想了解固定标签布局,你可以看到here

enter image description here

我应该如何更改我的代码?

这些SO问题没有多大帮助:

1 个答案:

答案 0 :(得分:2)

  

通过这种方式,每当我选择一个标签时,应用程序将在屏幕上显示与该标签相关联的活动。

这种方法已被正式弃用。

  

我想使用ActionBar设计模式来获得相同的结果。我该如何更改我的代码?

最直接的方法是将这些嵌套活动转换为片段,然后在所选标签更改时提交FragmentTransaction。如果您使用的是本机API Level 11操作栏,则可以使用本机API Level 11 Fragment类和FragmentTransaction传递到TabListener。如果您希望使用ActionBarSherlock,最后将使用Android支持包中的FragmentFragmentTransaction