特別說明:以下四篇文章都轉自於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的結合實現的分頁標籤-------方式二