Android之Tab分頁標籤的實現方法一—–TabActivity和TabHost的結合(一)

來源:互聯網
上載者:User

 

特別說明:以下四篇文章都轉自於http://blog.csdn.net/kkfdsa132

 

許多軟體,因為功能比較多,都喜歡採用Tab分頁。在Android裡面Tab分頁,常用的方法有兩種:

       1、採用TabActivity和TabHost的結合

       2、採用ActivityGroup和GridView的結合。

      這裡將會一一講到他們的實現方法。現在,先講講TabActivity和TabHost的結合吧。其實,TabActivity和TabHost的結合的方式有三種,如下:

        第一種方式:各個頁面配置放在同一個檔案,代碼也緊湊一起。不建議。

        第一種方式:各個頁面配置檔案是分割的,但代碼仍然緊湊一起,也不建議。

        第三種方式:各個頁面配置檔案是分割,各頁面代碼也是分割,建議。

        沒有差,怎樣體現好;這裡會把三種方式一一講述,讀者自己慢慢體會。

        (一)TabActivity和TabHost的結合實現的分頁標籤-------方式一

         實現細節:

           1.主類繼承TabActivity

           public class Pagination extends TabActivity

           2.擷取當前TabHost對象

           TabHost tabHost = getTabHost();

           3.載入布局檔案

           LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(), true);

           4.添加Tab分頁標籤

           tabHost.addTab(tabHost.newTabSpec("tab1")  
                .setIndicator("tab1", getResources().getDrawable(R.drawable.a1))  
                .setContent(R.id.view1));  

           ......... 

            

       

             

         1、布局檔案:main.xml

        

<?xml version="1.0" encoding="utf-8"?><br /><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"><br /><!-- 分頁一 --><br /><TextView android:id="@+id/view1"<br />android:layout_width="fill_parent"<br />android:layout_height="fill_parent"<br />android:text="This is Tab1"/></p><p><!-- 分頁二 --><br /><LinearLayout<br />android:id="@+id/view2"<br />android:layout_width="fill_parent"<br />android:layout_height="fill_parent"<br />android:orientation="vertical"<br />><br /><EditText<br />android:id="@+id/et_text"<br />android:layout_width="fill_parent"<br />android:layout_height="wrap_content"<br />android:text="EditText"<br />android:textSize="18sp"<br />><br /></EditText><br /><Button<br />android:id="@+id/bt_show"<br />android:layout_width="149px"<br />android:layout_height="wrap_content"<br />android:text="顯示"<br />><br /></Button><br /></LinearLayout></p><p><!-- 分頁三 --><br /><TextView android:id="@+id/view3"<br />android:layout_width="fill_parent"<br />android:layout_height="fill_parent"<br />android:text="This is Tab3"/></p><p></FrameLayout><br />

 

         2、代碼

       

package com.myandroid.test;</p><p>import android.app.TabActivity;<br />import android.os.Bundle;<br />import android.view.LayoutInflater;<br />import android.view.View;<br />import android.view.View.OnClickListener;<br />import android.widget.Button;<br />import android.widget.EditText;<br />import android.widget.TabHost;<br />import android.widget.Toast;</p><p>public class Pagination extends TabActivity {<br />private Button bt_show;<br />private EditText et_text;<br /> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> //setContentView(R.layout.main);//這裡無需載入首頁面<br /> TabHost tabHost = getTabHost();<br /> LayoutInflater.from(this).inflate(R.layout.main, //載入頁面<br /> tabHost.getTabContentView(), true);<br /> tabHost.addTab(tabHost.newTabSpec("tab1")<br /> .setIndicator("tab1", getResources().getDrawable(R.drawable.a1))<br /> .setContent(R.id.view1)); // 設定分頁要顯示的控制項<br /> tabHost.addTab(tabHost.newTabSpec("tab3")<br /> .setIndicator("tab2", getResources().getDrawable(R.drawable.a2))<br /> .setContent(R.id.view2));<br /> tabHost.addTab(tabHost.newTabSpec("tab3")<br /> .setIndicator("tab3", getResources().getDrawable(R.drawable.a3))<br /> .setContent(R.id.view3)); </p><p> bt_show = (Button)findViewById(R.id.bt_show);<br /> et_text = (EditText)findViewById(R.id.et_text);<br /> bt_show.setOnClickListener(new ClickEvent());</p><p> }</p><p> class ClickEvent implements OnClickListener{</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub<br />Toast.makeText(Pagination.this, et_text.getText(), Toast.LENGTH_SHORT).show();<br />}</p><p> }</p><p>}

 

 

   在res的drawable檔案中加入名稱為a1.png,a2.png,a3.png三張圖片

    下一篇是TabActivity和TabHost的結合實現的分頁標籤-------方式二

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.