今天來學習一下選項卡(TabHost)的使用,
選項卡的使用很常見,比如說:我們在手機上面 已接來電,未接來電的分組,首先來看下實現出來的效果截圖:
我們要去實現TabHost,主要有兩種方法:
一
1、各選項內容在布局文件中定義。
2、主Activity類繼承TabActivity;
3、用getTabHost()方法獲取TabHost
二
1、直接在布局文件中定義TabHost
注意:TabWidget的id必須是@Android:id/tabs,FrameLayout的id必須是 @android:id/tabcontent。
接下來使用第一種的實現方法來去實現TabHost
主Activity類:
- package com.jiangqq.tabhost;
-
- import android.app.TabActivity;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.widget.TabHost;
- import android.widget.TabHost.TabSpec;
-
- public class TabHostActivity_Second extends TabActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- // setContentView(R.layout.tabhost_second);
- // 得到TabHost
- TabHost tabHost = this.getTabHost();
-
- // 把自己的布局文件添加到TabHost 的FrameLayout中 【注意】很重要的一句代碼
- LayoutInflater.from(this).inflate(R.layout.tabhost_second,
- tabHost.getTabContentView(), true);
- // 設置選項卡
- // 參數:是選項卡的標簽
- TabSpec parentSpec = tabHost.newTabSpec("parent");
- parentSpec.setIndicator("基類",
- this.getResources().getDrawable(R.drawable.announcements256));
- parentSpec.setContent(R.id.tab_1);
-
- TabSpec subSpec = tabHost.newTabSpec("sub");
- subSpec.setIndicator("子類",
- this.getResources().getDrawable(R.drawable.content256));
- subSpec.setContent(R.id.tab_2);
-
- tabHost.addTab(parentSpec);
- tabHost.addTab(subSpec);
-
- }
- }
TabHost的布局文件:
- package com.jiangqq.tabhost;
-
- import android.app.TabActivity;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.widget.TabHost;
- import android.widget.TabHost.TabSpec;
-
- public class TabHostActivity_Second extends TabActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- // setContentView(R.layout.tabhost_second);
- // 得到TabHost
- TabHost tabHost = this.getTabHost();
-
- // 把自己的布局文件添加到TabHost 的FrameLayout中 【注意】很重要的一句代碼
- LayoutInflater.from(this).inflate(R.layout.tabhost_second,
- tabHost.getTabContentView(), true);
- // 設置選項卡
- // 參數:是選項卡的標簽
- TabSpec parentSpec = tabHost.newTabSpec("parent");
- parentSpec.setIndicator("基類",
- this.getResources().getDrawable(R.drawable.announcements256));
- parentSpec.setContent(R.id.tab_1);
-
- TabSpec subSpec = tabHost.newTabSpec("sub");
- subSpec.setIndicator("子類",
- this.getResources().getDrawable(R.drawable.content256));
- subSpec.setContent(R.id.tab_2);
-
- tabHost.addTab(parentSpec);
- tabHost.addTab(subSpec);
-
- }
- }