在android中通过TabSpec与TabHost实现分页功能
TabHost相当于浏览器中浏览器分布的集合,而Tabspec则相当于浏览器中的每一个分页面。d在Android中,每一个TabSpec分布可以是一个组件,也可以是一个布局,然后将每一个分页装入TabHost中,TabHost即可将其中的每一个分页一并显示出来。
创建TabHost分布菜单对象,利用以下代码。
LayoutInflater.from(this).inflate(R.layout.main,tableHost.getTabContentView());
TabHost广泛运用于android程序中,在程序中运用TabHost,解决了手机屏幕小,显示内容少的问题,如系统自带的拨号程序,就用了TabHost
分为拨号、通话纪录、联系人、收藏几个Tab。
定义布局文件:tabhost.xml
01 | <? xml version = "1.0" encoding = "utf-8" ?> |
02 | < ScrollView xmlns:android = "http://schemas.android.com/apk/res/android" |
03 | android:layout_width = "match_parent" |
04 | android:layout_height = "match_parent" > |
07 | android:orientation = "vertical" |
08 | android:layout_width = "match_parent" |
09 | android:layout_height = "wrap_content" |
10 | android:layout_marginRight = "5dp" > |
13 | android:id = "@+id/tab_edit" |
14 | android:layout_width = "fill_parent" |
15 | android:layout_height = "fill_parent" |
16 | androidrientation = "vertical" > |
18 | android:id = "@+id/edit" |
19 | android:layout_width = "wrap_content" |
20 | android:layout_height = "wrap_content" |
21 | android:text = "请输入检索关键字..." |
22 | android:textSize = "18sp" /> |
25 | android:layout_width = "wrap_content" |
26 | android:layout_height = "wrap_content" |
30 | android:id = "@+id/tab_clock" |
31 | android:layout_width = "fill_parent" |
32 | android:layout_height = "fill_parent" |
33 | androidrientation = "vertical" > |
35 | android:id = "@+id/myAnalogClock" |
36 | android:layout_width = "wrap_content" |
37 | android:layout_height = "wrap_content" /> |
40 | android:id = "@+id/tab_sex" |
41 | android:layout_width = "fill_parent" |
42 | android:layout_height = "fill_parent" |
43 | androidrientation = "vertical" > |
46 | android:layout_width = "fill_parent" |
47 | android:layout_height = "wrap_content" |
48 | android:orientation = "vertical" > |
50 | android:id = "@+id/male" |
51 | android:checked = "true" |
54 | android:id = "@+id/female" |
2.java代码:
03 | import java.util.ArrayList; |
06 | import java.util.HashMap; |
07 | import java.util.List; |
11 | import android.app.Activity; |
12 | import android.app.TabActivity; |
13 | import android.content.Intent; |
14 | import android.os.Bundle; |
15 | import android.view.LayoutInflater; |
16 | import android.view.View; |
17 | import android.view.View.OnClickListener; |
18 | import android.widget.CompoundButton.OnCheckedChangeListener; |
19 | import android.widget.TabHost.TabSpec; |
20 | import android.widget.CompoundButton; |
21 | import android.widget.ListView; |
22 | import android.widget.SimpleAdapter; |
23 | import android.widget.TabHost; |
24 | import android.widget.TextView; |
25 | import android.widget.ToggleButton; |
27 | public class TabHostDemo extends TabActivity { |
29 | private TabHost mytabhost = null ; |
30 | private int [] layRes = { R.id.tab_edit, R.id.tab_clock , R.id.tab_sex }; |
34 | protected void onCreate(Bundle savedInstanceState) { |
36 | super .onCreate(savedInstanceState); |
37 | mytabhost = super .getTabHost() ; |
38 | LayoutInflater.from( this ) |
39 | .inflate(R.layout.tabhost, |
40 | this .mytabhost.getTabContentView(), |
42 | for ( int x = 0 ; x < this .layRes.length; x++) { |
43 | TabSpec myTab = mytabhost.newTabSpec( "tab" + x); |
44 | myTab.setIndicator( "标签 - " + x) ; |
45 | myTab.setContent( this .layRes[x]) ; |
46 | this .mytabhost.addTab(myTab) ; |
3.执行结果:
=========================================================================