示例:xml文件:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/tp">
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:id="@+id/widger34"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="EditText"
/>
<Button
android:id="@+id/widget30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<AnalogClock
android:id="@+id/widget36"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/tab3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<RadioGroup
android:id="@+id/widget43"
android:layout_width="166px"
android:layout_height="98px"
android:orientation="vertical"
>
<RadioButton
android:id="@+id/widget44"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton"
/>
<RadioButton
android:id="@+id/widget45"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton"
/>
</RadioGroup>
</LinearLayout>
</FrameLayout>
MainActivity:
package com.example7.www;
import android.app.Activity;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
public class MainActivity extends TabActivity {//不是Activity而是LabACtivi
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Tab测试");
TabHost tabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.main,tabHost.getTabContentView(),true);
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1").setContent(R.id.tab1));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tab2").setContent(R.id.tab2));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3").setContent(R.id.tab3));
}
}
知识点:1.继承自LabActvivty
2.LayoutInflater的作用相当于findViewById,不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
获得 LayoutInflater 实例的三种方式
a. LayoutInflater inflater = getLayoutInflater();//调用Activity的getLayoutInflater()
b. LayoutInflater inflater = LayoutInflater.from(context);
c. LayoutInflater inflater = (LayoutInflater)context.getSystemService
3.关于LayoutInflater类inflate(int resource, ViewGroup root, boolean attachToRoot)方法三个参数的含义
resource:需要加载布局文件的id,意思是需要将这个布局文件中加载到Activity中来操作。
root:需要附加到resource资源文件的根控件,什么意思呢,就是inflate()会返回一个View对象,如果第三个参数attachToRoot为true,就将这个root作为根对象返回,否则仅仅将这个root对象的LayoutParams属性附加resource对象的根布局对象上,也就是布局文件resource的最外层的View上,比如是一个LinearLayout或者其它的Layout对象。
attachToRoot:是否将root附加到布局文件的根视图上