Android布局--TabHost的使用

来源:互联网 发布:小米2s4g网络怎么设置 编辑:程序博客网 时间:2024/05/16 04:59

1.Tab来自于layout下的元素 

(1)效果图

(2)代码

1)tab_demo.xml

  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:orientation="vertical"    
  4.     android:layout_width="fill_parent"    
  5.     android:layout_height="fill_parent"    
  6.     >    
  7.     <TextView android:id="@+id/tab_demo_tv1"    
  8.         android:layout_width="fill_parent"     
  9.         android:layout_height="fill_parent"     
  10.         android:text="tab_demo_tv1"    
  11.     />    
  12.     <TextView android:id="@+id/tab_demo_tv2"    
  13.         android:layout_width="fill_parent"     
  14.         android:layout_height="fill_parent"     
  15.         android:text="tab_demo_tv2"    
  16.     />    
  17.     <TextView android:id="@+id/tab_demo_tv3"    
  18.         android:layout_width="fill_parent"     
  19.         android:layout_height="fill_parent"     
  20.         android:text="tab_demo_tv3"    
  21.     />    
  22. </FrameLayout>   

2)TabDemo.java

  1. public class TabDemo extends TabActivity    
  2.     private TabHost tabHost;    
  3.         
  4.     public void onCreate(Bundle savedInstanceState)    
  5.         super.onCreate(savedInstanceState);    
  6.         tabHost getTabHost();    
  7.             
  8.         LayoutInflater.from(this).inflate(R.layout.tab_demo, tabHost.getTabContentView(), true);    
  9.         tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Tab1"null).setContent(R.id.tab_demo_tv1));   
  10.         tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Tab2"null).setContent(R.id.tab_demo_tv2));   
  11.         tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("Tab3"null).setContent(R.id.tab_demo_tv3));   
  12.             
  13.         setContentView(tabHost);    
  14.        
  15.    

2.TabHost绑定动态View(从2个Layout中取数据)

(1)效果图

(2)代码

1)tab_map.xml

[xhtml] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:orientation="vertical"    
  4.     android:layout_width="fill_parent"    
  5.     android:layout_height="fill_parent"    
  6.     android:id="@+id/tab_map_id"    
  7.     >    
  8. </FrameLayout>   

2)tab_hs.xml

  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"    
  4.     android:layout_width="fill_parent"    
  5.     android:layout_height="fill_parent"    
  6.     android:id="@+id/tab_hs_id"    
  7.     >    
  8.     <TextView android:id="@+id/tab_hs_tv"    
  9.         android:layout_width="fill_parent"    
  10.         android:layout_height="fill_parent"    
  11.     />    
  12. </FrameLayout>   

3)MapView.java

 

[java] view plaincopy
  1. public class MapView extends View
  2.    
  3.     public MapView(Context context)
  4.      
  5.         super(context);    
  6.        
  7.     protected void onDraw(Canvas canvas)    
  8.         Paint new Paint();    
  9.         canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.icon), 00p);  
  10.        
  11.    

4)TabDemo.java

  1. public class TabDemo extends TabActivity    
  2.     private TabHost tabHost;    
  3.         
  4.     public void onCreate(Bundle savedInstanceState)    
  5.         super.onCreate(savedInstanceState);    
  6.         tabHost getTabHost();    
  7.             
  8.         createTabSpec_map();    
  9.         createTabSpec_hs();    
  10.             
  11.         setContentView(tabHost);    
  12.        
  13.         
  14.     private void createTabSpec_map()    
  15.         LayoutInflater inflater_tab1 LayoutInflater.from(this);    
  16.         inflater_tab1.inflate(R.layout.tab_map, tabHost.getTabContentView());    
  17.             
  18.             
  19.         FrameLayout frameLayout (FrameLayout) findViewById(R.id.tab_map_id);    
  20.         MapView mv new MapView(this);    
  21.         frameLayout.addView(mv);    
  22.             
  23.         TabHost.TabSpec tabSpec_map tabHost.newTabSpec("map view");    
  24.         tabSpec_map.setIndicator("map view"null);    
  25.         tabSpec_map.setContent(R.id.tab_map_id); // 动态绑定基于图片的View(通过一个Layout绑定)    
  26.         tabHost.addTab(tabSpec_map);    
  27.        
  28.     private void createTabSpec_hs()    
  29.         LayoutInflater inflater_tab2 LayoutInflater.from(this);    
  30.         inflater_tab2.inflate(R.layout.tab_hs, tabHost.getTabContentView());    
  31.             
  32.         TabHost.TabSpec tabSpec_hs tabHost.newTabSpec("hs view");    
  33.         tabSpec_hs.setIndicator("hs view");    
  34.         tabSpec_hs.setContent(R.id.tab_hs_id); // 绑定一个新的Layout    
  35.         tabHost.addTab(tabSpec_hs);    
  36.             
  37.             
  38.         updateTabSpec_hs();    
  39.        
  40.     private void updateTabSpec_hs()    
  41.         TextView tv (TextView) findViewById(R.id.tab_hs_tv);    
  42.         tv.setText("This is tab2");    
  43.        
  44.   
原创粉丝点击