本文主要介绍标签控件Tab,具体操作看代码。
一、Tab标签
1.TabDemoActivity.java
//标签控件Tab
public class TabDemoActivity extends TabActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("标签控件Tab");
TabHost tabHost=getTabHost();
LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(),true);
tabHost.addTab(tabHost.newTabSpec("biaoqian1").setIndicator("标签tab1").setContent(R.id.tab1));
tabHost.addTab(tabHost.newTabSpec("biaoqian2").setIndicator("标签tab2").setContent(R.id.tab2));
tabHost.addTab(tabHost.newTabSpec("biaoqian3").setIndicator("标签tab3").setContent(R.id.tab3));
}
}
2.布局文件tab.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">
<TextView
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#cc3399"
android:text="内容tab1" />
<TextView
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffff00"
android:text="内容tab2" />
<TextView
android:id="@+id/tab3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#66cc99"
android:text="内容tab3" />
</FrameLayout>
3. 注意:需要在AndroidManifest.xml注册相应Activity.
二、选项卡TabWidget
1.TabWidgetActivity.java
//注意这个activity继承的是TabActivity
public class TabWidgetActivity extends TabActivity {
//声明TabHost对象
private TabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_widget);
//获取TabHoast对象
mTabHost=getTabHost();
/* 为TabHost添加标签 */
//新建一个newTabSpec(newTabSpec)
//设置其标签和图标(setIndicator)
//设置内容(setContent)
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB1",getResources().getDrawable(R.drawable.img1)).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB2",getResources().getDrawable(R.drawable.img2)).setContent(R.id.textview2));
mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("TAB3",getResources().getDrawable(R.drawable.img3)).setContent(R.id.textview3));
//设置TabHost的背景颜色
mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));
//显示第一个tab
mTabHost.setCurrentTab(0);
//标签切换事件处理,setOnTabChangedListener
mTabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
Dialog dialog=new AlertDialog.Builder(TabWidgetActivity.this)
.setTitle("提醒你")
.setMessage("你当前选中的是"+tabId+"标签!")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(TabWidgetActivity.this, "你单击了确定按钮!", Toast.LENGTH_LONG).show();
dialog.cancel();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(TabWidgetActivity.this, "你单击了取消按钮!", Toast.LENGTH_LONG).show();
dialog.cancel();
}
})
.create();
dialog.show();
}
});
}
}
2.布局文件tab_widget.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">
<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">
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="第一个tab"/>
<TextView
android:id="@+id/textview2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="第二个tab"/>
<TextView
android:id="@+id/textview3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="第三个tab"/>
</FrameLayout>
</LinearLayout>
</TabHost>
3. 注意:需要在AndroidManifest.xml注册相应Activity.