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>
效果图:
