Android TabHost的使用(Tab为Layout)

时间:2022-09-13 20:52:36

Android TabHost的使用,这里采用继承TabActivity的方法。

这里分别定制三个Tab,分别为american.xml, chinese.xml, japanese.xml三个Layout。

american.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="American1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="American2" />

</LinearLayout>

 chinese.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
        <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Chinese button 1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Chinese button 2" />

</LinearLayout>

  japanese.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
        <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Japanese button 1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Japanese button 2" />

</LinearLayout>

 

三个Layout对应的java文件为AmericanActivity.java, ChinaActivity.java, JapanActivity.java

AmericanActivity.java文件

public class AmericanActivity extends Activity {

	 @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.american);
	     
	    }
}

  ChinaActivity.java文件

public class ChinaActivity extends Activity {

	 @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.chinese);
	       
	    }
}

  JapanActivity.java文件

public class JapanActivity extends Activity {

	 @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.japanese);
	      
	    }
}

  

MainActivity.java 继承TabActivity。

public class MainActivity extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        Resources resources = getResources();
        TabHost tabHost = getTabHost();
        
        TabHost.TabSpec spec;
        
        Intent intent = new Intent(this,AmericanActivity.class );
        spec = tabHost.newTabSpec("American");
        spec.setIndicator("Ameican Tab"); 
        spec.setContent(intent);
        tabHost.addTab(spec);
        
        Intent intent2 = new Intent(this,ChinaActivity.class );
        spec = tabHost.newTabSpec("China");
        spec.setIndicator("China Tab") 
        spec.setContent(intent2);
        tabHost.addTab(spec);
        
        Intent intent3 = new Intent(this,JapanActivity.class );
        spec = tabHost.newTabSpec("Japanese");
        spec.setIndicator("Japanese Tab"); 
        spec.setContent(intent3);
        tabHost.addTab(spec);
        
        tabHost.setCurrentTab(1);
    }

    
}

  注意:在AndroidManifest文件中加入下面三行代码。

        <activity android:name="com.example.app1.AmericanActivity" android:label="@string/app_name"></activity>
        <activity android:name="com.example.app1.JapanActivity" android:label="@string/app_name"></activity>
        <activity android:name="com.example.app1.ChinaActivity" android:label="@string/app_name"></activity>

 效果图:

Android TabHost的使用(Tab为Layout)