现在,在我的应用程序中,我有一个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:
我应该如何更改我的代码?
这些SO问题没有多大帮助:
答案 0 :(得分:2)
通过这种方式,每当我选择一个标签时,应用程序将在屏幕上显示与该标签相关联的活动。
这种方法已被正式弃用。
我想使用ActionBar设计模式来获得相同的结果。我该如何更改我的代码?
最直接的方法是将这些嵌套活动转换为片段,然后在所选标签更改时提交FragmentTransaction
。如果您使用的是本机API Level 11操作栏,则可以使用本机API Level 11 Fragment
类和FragmentTransaction
传递到TabListener
。如果您希望使用ActionBarSherlock,最后将使用Android支持包中的Fragment
和FragmentTransaction
。