国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android TabWidget切換卡的實現應用

2020-04-11 12:29:39
字體:
來源:轉載
供稿:網友

TabWidget類似于Android 中查看電話薄的界面,通過多個標簽切換顯示不同內容。要實現這一效果,首先要了解TabHost,它是一個用來存放多個Tab標簽的容器。每一個Tab都可以對應自己的布局,比如,電話薄中的Tab布局就是一個List的線性布局了。 
要使用TabHost,首先需要通過getTabHost方法來獲取TabHost的對象,然后通過addTab方法來向TabHost中添加 Tab。當然每個Tab在切換時都會產生一個事件,要捕捉這個事件需要設置TabActivity的事件監聽 setOnTabChangedListener。

1、布局文件

<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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <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="Linux"
        android:textColor="#FF0000" />

      <TextView
        android:id="@+id/textview2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="MAC"
        android:textColor="#385E0F" />

      <TextView
        android:id="@+id/textview3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="Windows"
        android:textColor="#1E90FF" />
    </FrameLayout>
  </LinearLayout>

</TabHost>

2、修改MainActivity,注意是繼承自TabActivity

public class MainActivity extends TabActivity { private TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tabHost = getTabHost(); addTab();// 添加標簽 // 設置TabHost背景顏色 tabHost.setBackgroundColor(Color.argb(150, 20, 80, 150)); // 設置TabHost背景圖片資源 tabHost.setBackgroundResource(R.drawable.ic_launcher); // 設置當前顯示哪一個標簽 我的理解就是當你第一次啟動程序默認顯示那個標簽 這里是指定的選項卡的ID從0開始 tabHost.setCurrentTab(0); // 標簽切換事件處理,setOnTabChangedListener 注意是標簽切換事件不是點擊事件,而是從一個標簽切換到另外一個標簽會觸發的事件 tabHost.setOnTabChangedListener(new OnTabChangeListener() {  @Override  public void onTabChanged(String tabId) {  AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);  Dialog dia;  builder.setTitle("提示");  builder.setMessage("當前選中了" + tabId + "標簽");  builder.setPositiveButton("確定", new OnClickListener() {   @Override   public void onClick(DialogInterface dialog, int which) {   dialog.cancel();   }  });  dia = builder.create();  dia.show();  } }); } // 為TabHost添加標簽 新建一個newTabSped(new TabSpec) 設置其標簽和圖標(setIndicator)、設置內容(setContent) // TabSpec是TabHost的內部類 TabHost對象的 newTabSpec()方法返回一個TabSpec對象 // 源碼里邊是這么寫的 public TabSpec newTabSpec(String tag) // { return new TabSpec(tag); } private void addTab() { tabHost.addTab(tabHost  .newTabSpec("tab1")  .setIndicator("TAB1",   getResources().getDrawable(R.drawable.ic_launcher))// setIndicator()此方法用來設置標簽和圖表  .setContent(R.id.textview1)); // 指定內容為一個TextView --->public TabHost.TabSpec setContent(int viewId) 此方法需要一個 viewId 作為參數 tabHost.addTab(tabHost  .newTabSpec("tab2")  .setIndicator("TAB2",   getResources().getDrawable(R.drawable.ic_launcher))  .setContent(R.id.textview2)); tabHost.addTab(tabHost  .newTabSpec("tab3")  .setIndicator("TAB3",   getResources().getDrawable(R.drawable.ic_launcher))  .setContent(R.id.textview3)); }}

 3、運行程序:如下!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜宾县| 光山县| 新野县| 图木舒克市| 龙川县| 南宫市| 铁岭市| 清水河县| 兰州市| 伊金霍洛旗| 甘泉县| 乌海市| 昌乐县| 容城县| 济源市| 巍山| 昭苏县| 永春县| 阿图什市| 阿克陶县| 措勤县| 土默特右旗| 灵宝市| 兴城市| 班玛县| 丽江市| 海林市| 贺州市| 怀宁县| 荥阳市| 辽阳市| 怀远县| 格尔木市| 宾川县| 雅江县| 招远市| 墨竹工卡县| 兴山县| 商丘市| 大丰市| 益阳市|