Tab Layout(选项卡格局)

Tab Layout(选项卡布局)
Tab Layout(选项卡布局):http://hualang.iteye.com/blog/976826
参考:http://book.51cto.com/art/201007/214806.htm
所有讲解可以参考上面两个地址。

三个对应tab的Activity
package com.pandy.layout;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class AlbumsActivity extends Activity {
	public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
         TextView textview = new TextView(this);  
         textview.setText("This is the Albums tab");          
        setContentView(textview);  
    } 
}


package com.pandy.layout;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class ArtistsActivity extends Activity {
	@Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
         TextView textview = new TextView(this);  
         textview.setText("This is the Artists tab");   
        setContentView(textview);  
    }  
}


package com.pandy.layout;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class SongsActivity extends Activity {
	public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
         TextView textview = new TextView(this);  
         textview.setText("This is the Songs tab");   
        setContentView(textview);  
    }
}	



加入Activity
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.pandy.layout"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".TabLayoutDemoActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ArtistsActivity"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name=".SongsActivity"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name=".AlbumsActivity"
            android:label="@string/app_name" >
        </activity>
    </application>

</manifest>



资源文件:
res/drawable-hdpi下面存放myimage1.png,myimage2.png两个黑白相应的图片,以及ic_tab_artists.xml
<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
<!-- When selected,use grey -->  
    <item android:drawable="@drawable/myimage1"  
        android:state_selected="true"/>  
    <!-- When not selected ,use white -->  
    <item android:drawable="@drawable/myimage2"/>  
</selector>  



main.xml
<?xml version="1.0" encoding="utf-8"?>  
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@android:id/tabhost"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent">  
    <LinearLayout  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:padding="5dp">  
        <TabWidget  
            android:id="@android:id/tabs"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content" />  
        <FrameLayout  
            android:id="@android:id/tabcontent"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent"  
            android:padding="5dp" />  
    </LinearLayout>  
</TabHost>




主程序
package com.pandy.layout;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

public class TabLayoutDemoActivity extends TabActivity {
	public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
  
        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, ArtistsActivity.class);  
  
        // Initialize a TabSpec for each tab and add it to the TabHost  
        spec = tabHost.newTabSpec("tab1").setIndicator("标题一",res.getDrawable(R.drawable.myimage1)).setContent(intent);  
        tabHost.addTab(spec);  
  
        // Do the same for the other tabs  
        intent = new Intent().setClass(this, AlbumsActivity.class);  
        spec = tabHost.newTabSpec("tab2").setIndicator("标题二",res.getDrawable(R.drawable.myimage1)).setContent(intent);  
        tabHost.addTab(spec);  
  
        intent = new Intent().setClass(this, SongsActivity.class);  
        spec = tabHost.newTabSpec("tab3").setIndicator("标题三",res.getDrawable(R.drawable.myimage1)).setContent(intent);  
        tabHost.addTab(spec);  
  
		tabHost.setCurrentTab(1);
		// 或采用如下的代码
		// getTabHost().setCurrentTabByTag("tab3");
    }  
}