Android下TabActivity的使用(1)
这篇文章总结了TabActivity的三种基本用法,具体的例子都取自ApiDemo。
基本知识 要实现多标签的Activity,目标Activity(就是你建立的那个)首先要实现TabActivity类。这样,用户就可以通过getTabHost()方法来获得对应的TabHost对象,从而动态地添加标签。下面给出了标签切换时,如何设定显示区内容的三种方法。
最简单的方法就是,给出Layout文件,然后再用LayoutInflator将其inflate到显示区。由于所有的标签都在同一个Layout文件中定义,因此FrameLayout就是必须的布局了。因为你一次只能显示一个内容。在ApiDemo的第一个例子中,给出的布局文件如下:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final TabHost tabHost = getTabHost(); tabHost.addTab(tabHost.newTabSpec("tab1") .setIndicator("list") .setContent(new Intent(this, List1.class))); tabHost.addTab(tabHost.newTabSpec("tab2") .setIndicator("photo list") .setContent(new Intent(this, List8.class))); // This tab sets the intent flag so that it is recreated each time // the tab is clicked. tabHost.addTab(tabHost.newTabSpec("tab3") .setIndicator("destroy") .setContent(new Intent(this, Controls2.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); }
ApiDemo的view->tabs给出来三种具体的实例,非常全面。
TabActivity的定制是非常重要,而且常用的,但其基本的使用已经能够满足绝大多数要了。应该说这也是Android开发一个必须掌握的点了。