TabHost的使用

来源:互联网 发布:手机浏览器 知乎 编辑:程序博客网 时间:2024/06/07 20:03

1. 从一个layout id创建各个tab页

[java] view plaincopy
  1. public class Tabs1 extends TabActivity {  
  2.     @Override  
  3.     protected void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         TabHost tabHost = getTabHost();  
  6.           
  7.         LayoutInflater.from(this).inflate(R.layout.tabs1, tabHost.getTabContentView(), true);  
  8.         tabHost.addTab(tabHost.newTabSpec("tab1")  
  9.                 .setIndicator("tab1")  
  10.                 .setContent(R.id.view1));  
  11.         tabHost.addTab(tabHost.newTabSpec("tab3")  
  12.                 .setIndicator("tab2")  
  13.                 .setContent(R.id.view2));  
  14.         tabHost.addTab(tabHost.newTabSpec("tab3")  
  15.                 .setIndicator("tab3")  
  16.                 .setContent(R.id.view3));  
  17.     }  
  18. }  
 

 

2. 动态创建一个view来做为tab页的内容

[java] view plaincopy
  1. public class Tabs2 extends TabActivity implements TabHost.TabContentFactory {  
  2.     @Override  
  3.     protected void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         final TabHost tabHost = getTabHost();  
  6.         tabHost.addTab(tabHost.newTabSpec("tab1")  
  7.                 .setIndicator("tab1", getResources().getDrawable(R.drawable.star_big_on))  
  8.                 .setContent(this));  
  9.         tabHost.addTab(tabHost.newTabSpec("tab2")  
  10.                 .setIndicator("tab2")  
  11.                 .setContent(this));  
  12.         tabHost.addTab(tabHost.newTabSpec("tab3")  
  13.                 .setIndicator("tab3")  
  14.                 .setContent(this));  
  15.     }  
  16.     /** {@inheritDoc} */  
  17.     public View createTabContent(String tag) {  
  18.         final TextView tv = new TextView(this);  
  19.         tv.setText("Content for tab with tag " + tag);  
  20.         return tv;  
  21.     }  
  22. }  
 

 

3. 传递一个intent来传递参数,并以新启动的activity做为tab页的内容,这个应该是比较方便传递参数的。。。

[java] view plaincopy
  1. public class Tabs3 extends TabActivity {  
  2.     @Override  
  3.     protected void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         final TabHost tabHost = getTabHost();  
  6.         tabHost.addTab(tabHost.newTabSpec("tab1")  
  7.                 .setIndicator("list")  
  8.                 .setContent(new Intent(this, List1.class)));  
  9.         tabHost.addTab(tabHost.newTabSpec("tab2")  
  10.                 .setIndicator("photo list")  
  11.                 .setContent(new Intent(this, List8.class)));  
  12.           
  13.         // This tab sets the intent flag so that it is recreated each time  
  14.         // the tab is clicked.  
  15.         tabHost.addTab(tabHost.newTabSpec("tab3")  
  16.                 .setIndicator("destroy")  
  17.                 .setContent(new Intent(this, Controls2.class)  
  18.                         .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));  
  19.     }  
  20. }