首页 技术 正文
技术 2022年11月14日
0 收藏 336 点赞 3,301 浏览 2758 个字

Tab用一个简单的应用程序接口的标签是集中的界面布局文件的同一页上的接口组件不同的标签。并计划将在主类集中的代码文件。这种方法的优点是,文件在项目数不会被添加,但是,假设Tab接口组件更个性化的标签。复杂,把它们集中放在同一个文件会造成日后程序维护上的困难。

我们已经学习过Intent对象的用法。这里我们就用Intent对象来建立Tab标签页接口。这个新的方法事实上是基于一个非常easy的概念,就是每个Tab标签页都相应到一个独立的Activity类。因此不同标签页的接口布局文件和程序代码都是各自独立,如此一来就能够降低接口布局文件和程序代码的复杂性,使它们易于阅读和维护。

(1)要完毕Tab标签接口须要一个TabHost组件。它负责管控整个Tab标签页的架构。TabHost组件下包括有两个组件:TabWidget组件和FrameLayout组件。TabWidget组件负责掌控全部的Tab标签,FrameLayout组件则负责显示每个Tab标签页的接口组件。

(2)建立Tab标签页接口有2种方法,一种是把每个Tab page内的接口组件都一齐写在同一个布局文件里。可是用不同的<LinearLayout>标签把不同的Tab page 内的接口组件分隔开来。还有一种方式是把每个Tab page内的接口组件都写成一个独立的接口布局文件,再利用Intent的方法把它载入到相应的Tab page中。这中方法须要用到Intent技术。

以下就来解说下第一种方法,为使用Intent对象做铺垫:

<TabHost xmlns:android="http://schemas.android.com/apk.res/android"
android:id="@+id/tabHost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Tab Widget android:id="@+id/tabs"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/><!--TabWidget标签的id一定要设定成@android:id/tabs; FrameLayout标签的id一定要设定成@android:id/tabcontent--><FrameLayout android:id="@+id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"><LinearLayout android:id="@+id/tab1"android:orientaion="vertical"
android:layout_width="fill_parent"
android:layout_height="warp_content"
android:paddingTop="70dp"
><!-- 第一个Tab page的接口组件--></LinearLayout><LinearLayout android:id="@+id/tab1"android:orientaion="vertical"
android:layout_width="fill_parent"
android:layout_height="warp_content"
android:paddingTop="70dp"
>
<!-- 第二个Tab page的接口组件-->
</LinearLayout></FrameLayout>
</TabHost>

代码:

package tw.android;import java.util.Calendar;
import android.app.*;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.*;
import android.widget.TabHost.TabSpec;public class TabPageDemo extends Activity{
//继承的类仍然是Activityprivate DatePicker mDatePik;
private TimePicker mTimePik;
private TextView mTxtResult;
private Button mBtnOk;privte Button mBtnOk;//创建新想Handler对象
private Handler mHandler=new Handler();/**Called when the activity is first created */
@Override
public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.main);setupViewComponent();
}private void setupViewComponent(){//从资源R中获取接口组件并设定属性
TabHost tabHost=(TabHost)findViewById(R.id.tabHost);
tabHost.setup();TabSpec spec=tabHost.newTabSpec("tab1");
spec.setContent(R.id.tab1);
spec.setIndicator("日期和时间",getResource().getDrawable(android.R.drawable.ic_lock_idle_alarm)
);
tabHost.addTab(spec);spec=tabHost.newTabSpec("tab2");
spec.setIndicator("ProgressBar Demo",getResource().getDrawable(android.R.drawable.ic_dialog_alert)
);
spec.setContent(R.id.tab2);tabHost.addTab(spec);tabHost.setCurrentTab(0);
//以下内容就是将原来的setupViewComponent()方法内的所有程序代码,程序启动时候载入的程序setCurrentTab(0),0代表第一个Tab page 。1代表地二个Tab page ,其它依次类推}}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905