`

7.1.5 选项卡结合案例详解

阅读更多
选项卡是通过TabHost和TabActivity一起实现的,TabHost是Android中很常用的布局之一,它的标签可以有文本和文本图片样式。点击不同标签还可以切换标签。TabHost类的继承图如下:
java.lang.Object
   ↳android.view.View
   ↳android.view.ViewGroup
   ↳android.widget.FrameLayout
   ↳android.widget.TabHost
android.widget.TabHost继承了android.widget.FrameLayout框架布局类。下面是一个文本图片选项卡例子,如图7-10所示。
 


图7-10 TabHost1
代码请参考代码清单7-11,完整代码请参考chapter7_1工程中Tab1代码部分。
【代码清单7-11】
public class Tab1 extends TabActivity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		TabHost tabHost = getTabHost();

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

		tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1",
				getResources().getDrawable(R.drawable.redimage)).setContent(
				R.id.view1));
		tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab2",
				getResources().getDrawable(R.drawable.yellowimage)).setContent(
				R.id.view2));
		tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3")
				.setContent(R.id.view3));

	}

}


选项卡屏幕的Activity必须继承TabActivity,通过基类TabActivity提供的方法getTabHost()可以获得TabHost对象。下面的代码实现了为TabHost指定布局文件:
LayoutInflater.from(this).inflate(R.layout.tab1_layout,
tabHost.getTabContentView(), true);
addTab(TabHost.TabSpec tabSpec)方法可以添加选项卡的标签,本例中有三个标签。TabHost.TabSpec调用setIndicator()设置标签样式,有三个setIndicator ()方法:
• setIndicator(CharSequence label) 指定标签的文本信息;
• setIndicator(CharSequence label, Drawable icon) 指定文本图片标签;
• setIndicator(View view) 使用一个View指定标签。
TabHost.TabSpec调用setContent ()设置各个选项卡容纳的内容,有三个setContent ()方法:
• setContent(TabHost.TabContentFactory contentFactory) 通过TabHost.TabContentFactory工厂类创建选项卡的内容;
• setContent(int viewId) 通过一个id指定选项卡内容;
• setContent(Intent intent) 通过一个Intent指定选择选项卡跳转到一个Activity。
布局文件请参考代码清单7-12,完整代码请参考chapter7_1工程中tab1_layout.xml代码部分(chapter7_1/res/layout/tab1_layout.xml)。
【代码清单7-12】
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
     <TextView android:id="@+id/view1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/tab1"/>

    <TextView android:id="@+id/view2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/tab2"/>

    <TextView android:id="@+id/view3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/tab3"/>
</LinearLayout>

下面的例子是指定一个Intent的选项卡跳转到一个Activity的例子,如图7-11所示,有两个选项卡:城市列表和城市展示。
 


图7-11 TabHost2
代码请参考代码清单7-13,完整代码请参考chapter7_1工程中Tab2代码部分。
【代码清单7-13】
public class Tab2 extends TabActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		TabHost tabHost = getTabHost();

		tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("城市列表")
				.setContent(new Intent(this, ListView_1.class)));
		tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("城市展示")
				.setContent(
						new Intent(this, ListViewIcon_3.class)
								.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
	}
}

通过setContent方法设置Intent,当用户点击了选项卡的标签后,选项卡的内容会跳转。跳转之后的ListView_1和ListViewIcon_3是两个ListView展示城市信息,这两个ListView在第6章已经介绍了,这里就不再介绍了。
                                  出自《Android开发案例驱动教程》第七章
  • 大小: 12.8 KB
  • 大小: 26.3 KB
分享到:
评论
1 楼 efei 2011-08-02  
发代码,建议格式化一下,否则看着很累。

相关推荐

    象过河软件ERP V7.1.5安装包

    象过河软件ERP V7.1.5安装包

    PLSQL7.1.5.zip

    它结合了SQL的查询能力与过程性编程语言的控制结构,提供了更强大的数据处理和数据库管理功能。PLSQL7.1.5版本可能是该软件的一个特定发行版,具有稳定性和兼容性的特点,适用于64位操作系统。 在PLSQL中,你可以...

    php 7.1.5 安装

    PHP 7.1.5是PHP编程语言的一个版本,它在2017年发布,提供了许多性能优化和新功能。在这个版本中,开发者可以享受到更快的执行速度、更好的内存管理以及一系列的安全改进。以下是对PHP 7.1.5安装的详细步骤和相关...

    VMware7.1.5中文精简典藏版.part2.rar

    VMware7.1.5中文精简典藏版.part2.rar

    PLSQL7.1.5注册版.rar

    在Oracle数据库管理系统中,PL/SQL是一种过程化语言,它结合了SQL的查询能力与传统编程语言的控制结构,使得数据库开发人员能够创建复杂的业务逻辑和数据处理程序。 标题中的“PLSQL7.1.5注册版.rar”指的是该软件...

    PL SQL DEVELOPER 7.1.5 中文 破解

    由于不能上传大于15M的文件 所以上传aalf.dat 和 能下载的文档 PL SQL DEVELOPER 7.1.5 中文 破解

    PLSQL Developer 7.1.5

    PLSQL(Procedural Language/Structured Query Language)是Oracle数据库系统中的编程语言,结合了SQL的查询功能和传统编程语言的结构化控制流程。PLSQL Developer 7.1.5针对PLSQL编程提供了以下主要功能: 1. **源...

    PLSQL Developer 7.1.5 官方原版下载

    它的版本7.1.5是我们讨论的重点。此版本在当时具有诸多先进的特性和功能,旨在提高开发者的工作效率和代码质量。以下是对PLSQL Developer 7.1.5及其相关知识点的详细解释: 1. **PL/SQL编辑器**:PLSQL Developer的...

    PLSQL Developer 7.1.5 简体中文包下载

    1. **PL/SQL语言**:PLSQL是Oracle数据库的编程语言,结合了SQL的数据查询能力与过程式编程的特点。PLSQL Developer 7.1.5提供了一个友好的界面来编写和执行PL/SQL块,包括过程、函数、触发器和游标等。 2. **集成...

    VMWare Workstation 7.1.5 (Part1/10)

    很通用的虚拟机软件,workstation 7.1.5,可以把一台电脑当成多台电脑使用,是软件测试必备软件。

    CDH7.1.5离线安装包下载

    本资源打包了CDH7.1.5 搭建所需要的各种安装文件,包括: cm7.2.4-redhat7.tar.gz manifest.json cloudera-manager.repo RPM-GPG-KEY-cloudera CDH-7.1.5-1.cdh7.1.5.p0.7431829-el7.parcel CDH-7.1.5-1.cdh7.1.5.p0...

    PLSQL Developer7.1.5解压版

    7.1.5版本是该软件的一个特定迭代,它提供了许多功能来提升对Oracle数据库的交互效率。 1. **无须安装**:与传统的安装程序不同,PLSQL Developer 7.1.5提供了便携式版本,这意味着用户无需经过复杂的安装过程,只...

    dbeaver-ce-7.1.5-x86_64-setup.exe

    dbeaver最新版,dbeaver-ce-7.1.5-x86_64-setup.exe最新版

    VMware_Workstation_7.1.5_Lite.exe

    VMware_Workstation_7.1.5_Lite.exe

    grafana-7.1.5-1.x86_64.rpm

    grafana-7.1.5-1.x86_64.rpm

    seafile-server_7.1.5_x86-64.tar.gz

    "seafile-server_7.1.5_x86-64.tar.gz"是Seafile服务器端的版本7.1.5的64位Linux发行版压缩包。 安装与配置Seafile Server 7.1.5: 1. **解压文件**:首先,你需要在Linux服务器上解压下载的tar.gz文件。这可以...

    VMWare Workstation 7.1.5 (Part5/10)

    很通用的虚拟机软件,workstation 7.1.5,可以把一台电脑当成多台电脑使用,是软件测试必备软件。

    VMWare Workstation 7.1.5 (Part8/10)

    很通用的虚拟机软件,workstation 7.1.5,可以把一台电脑当成多台电脑使用,是软件测试必备软件。

    VMware workstation 7.1.5 汉化

    汉化的范围通常包括菜单、对话框、帮助文档等,确保用户在进行虚拟机管理时能无障碍地理解各项设置和选项。 在使用VMware Workstation 7.1.5时,用户可以创建、配置和管理各种虚拟机。这些虚拟机可以运行不同的操作...

    PL_SQL Developer7.1.5注册版(有注册文件和中文安装包)

    7.1.5版本是该软件的一个稳定版本,提供了丰富的功能,旨在提高开发人员的工作效率和代码质量。 在7.1.5版本中,用户可以期待以下关键功能和改进: 1. **集成开发环境(IDE)**:PL_SQL Developer提供了一个全面的...

Global site tag (gtag.js) - Google Analytics