Android 选项卡功能的实现

本文主要介绍标签控件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.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值