TabHost的创建

1.直接继承TabActivity,函数getTabHost拿到TabActivity里面的TabHost对象

 

package com.example.tabtest;

import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.widget.TabHost;

public class MainActivity extends TabActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		TabHost host = getTabHost();
		
		//from(this)从这个TabActivity获取LayoutInflater
		LayoutInflater.from(this).inflate(
				R.layout.host,       //host.xml存放Tab布局
				host.getTabContentView(), //通过TabHost获取存放Tab标签页内容的FrameLayout
				true);
		host.setBackgroundColor(Color.WHITE);
		
		host.addTab(host.newTabSpec("One")// make a new Tab
				.setIndicator("", getResources().getDrawable(R.drawable.gimp))
				// set the Title and Icon
				.setContent(R.id.blue));

          host.addTab(host.newTabSpec("Two")// make a new Tab
				.setIndicator("", getResources().getDrawable(R.drawable.mumule))
				// set the Title and Icon
				.setContent(R.id.red));

        host.addTab(host.newTabSpec("Three")// make a new Tab
				.setIndicator("", getResources().getDrawable(R.drawable.notepad))
				// set the Title and Icon
				.setContent(R.id.green));
		
		//setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

 2.如果不继承TabActivity,则TabHost需在xml文件中定义

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
    android:id="@+id/hometabs"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent">  
    
    <!-- TabHost必须包含一个 TabWidget和一个FrameLayout-->   
    <TabHost 
        android:id="@+id/tabhost"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"> 
         
        <LinearLayout  
        	android:orientation="vertical"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent">  
              
            <!-- TabWidget的id属性必须为 @android:id/tabs-->              
            <TabWidget 
                android:id="@android:id/tabs"   
                android:orientation="horizontal"  
                android:layout_width="fill_parent"  
              	android:layout_height="wrap_content"/>  

            <!-- FrameLayout的id属性必须为 @android:id/tabcontent-->  
            <FrameLayout 
                android:id="@android:id/tabcontent"  
                android:layout_width="fill_parent"                      
                android:layout_height="fill_parent">  
                      
                <TextView 
                    android:id="@+id/view1"  
                    android:layout_width="fill_parent"  
                    android:layout_height="fill_parent"/>  
                      
                <TextView 
                    android:id="@+id/view2"  
                    android:layout_width="fill_parent"  
                    android:layout_height="fill_parent"/>  
                      
                <TextView 
                    android:id="@+id/view3"  
                    android:layout_width="fill_parent"                           
                    android:layout_height="fill_parent"/>  
             
            </FrameLayout>  
        </LinearLayout>  
    </TabHost>  
</LinearLayout>  

 

package com.example.tabtest2;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TabHost;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		TabHost host = (TabHost)findViewById(R.id.tabhost);  
		//没有继承TabActivity时,通过该种方法加载启动tabHost   
		host.setup();  
		host.addTab(host.newTabSpec("tab1")
				.setIndicator("",  
						getResources().getDrawable(R.drawable.win))
				.setContent(R.id.view1));  

		host.addTab(host.newTabSpec("tab3")
				.setIndicator("", getResources().getDrawable(R.drawable.draw))  
				.setContent(R.id.view3));  

		host.addTab(host.newTabSpec("tab2")
				.setIndicator("", getResources().getDrawable(R.drawable.lose))  
				.setContent(R.id.view2));  
	}  
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

猜你喜欢

转载自aarongo.iteye.com/blog/1913709