- 浏览: 124830 次
- 性别:
- 来自: 深圳
最新评论
-
T_bag:
...
TabHost 中的Activity执行顺序 -
ihopethatwell:
楼主,你能否写一个 int类型的一维数组的结构体?
linux NDK实例 -
gf_crazy:
刚好找第二种,其他地方全是第一种。
TabHost -
gangbener:
我们是可以把不同分辨率的图片放到不同的图片文件夹中去,问题是: ...
android程序中屏幕问题解决方案 -
shusanzhan:
学习了,Mark
android应用收费渠道
Android TabWidget/TabHost有两种使用方法:
第一种:使用系统自带写好的TabHost(及继承自TabActivity类)具体代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout android:id="@+id/tab1"
- android:layout_width="fill_parent" android:layout_height="fill_parent"
- androidrientation="vertical">
- <TextView android:id="@+id/TextView1"
- android:text="This is a tab1" android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- </TextView>
- </LinearLayout>
- <LinearLayout android:id="@+id/tab2"
- android:layout_width="fill_parent" android:layout_height="fill_parent"
- androidrientation="vertical">
- <TextView android:id="@+id/TextView2"
- android:text="This is a tab2" android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- </TextView>
- </LinearLayout>
- <LinearLayout android:id="@+id/tab3"
- android:layout_width="fill_parent" android:layout_height="fill_parent"
- androidrientation="vertical">
- <TextView android:id="@+id/TextView3"
- android:text="This is a tab3" android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- </TextView>
- </LinearLayout>
- </FrameLayout>
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/tab1" android:layout_width="fill_parent" android:layout_height="fill_parent" androidrientation="vertical"> <TextView android:id="@+id/TextView1" android:text="This is a tab1" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> </LinearLayout> <LinearLayout android:id="@+id/tab2" android:layout_width="fill_parent" android:layout_height="fill_parent" androidrientation="vertical"> <TextView android:id="@+id/TextView2" android:text="This is a tab2" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> </LinearLayout> <LinearLayout android:id="@+id/tab3" android:layout_width="fill_parent" android:layout_height="fill_parent" androidrientation="vertical"> <TextView android:id="@+id/TextView3" android:text="This is a tab3" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> </LinearLayout> </FrameLayout>
- package com.Aina.Android;
- import android.app.AlertDialog;
- import android.app.Dialog;
- import android.app.TabActivity;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.widget.TabHost;
- public class Test_TabWidget extends TabActivity {
- /** Called when the activity is first created. */
- private TabHost tabHost;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // setContentView(R.layout.main);
- tabHost = this.getTabHost();
- LayoutInflater li = LayoutInflater.from(this);
- li.inflate(R.layout.main, tabHost.getTabContentView(), true);
- tabHost.addTab(tabHost.newTabSpec("Tab_1").setContent(R.id.tab1)
- .setIndicator("TAB1",
- this.getResources().getDrawable(R.drawable.img1)));
- tabHost.addTab(tabHost.newTabSpec("Tab_2").setContent(R.id.tab2)
- .setIndicator("TAB2",
- this.getResources().getDrawable(R.drawable.img2)));
- tabHost.addTab(tabHost.newTabSpec("Tab_3").setContent(R.id.tab3)
- .setIndicator("TAB3",
- this.getResources().getDrawable(R.drawable.img3)));
- tabHost.setCurrentTab(1);
- // tabHost.setBackgroundColor(Color.GRAY);
- tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
- public void onTabChanged(String tabId) {
- Dialog dialog = new AlertDialog.Builder(Test_TabWidget.this)
- .setTitle("提示").setMessage(
- "选中了" + tabId + "选项卡").setIcon(R.drawable.icon).setPositiveButton("确定", new DialogInterface.OnClickListener(){
- public void onClick(DialogInterface dialog,
- int which) {
- // TODO Auto-generated method stub
- }
- }).create();
- dialog.show();
- }
- });
- }
- }
package com.Aina.Android; import android.app.AlertDialog; import android.app.Dialog; import android.app.TabActivity; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.widget.TabHost; public class Test_TabWidget extends TabActivity { /** Called when the activity is first created. */ private TabHost tabHost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); tabHost = this.getTabHost(); LayoutInflater li = LayoutInflater.from(this); li.inflate(R.layout.main, tabHost.getTabContentView(), true); tabHost.addTab(tabHost.newTabSpec("Tab_1").setContent(R.id.tab1) .setIndicator("TAB1", this.getResources().getDrawable(R.drawable.img1))); tabHost.addTab(tabHost.newTabSpec("Tab_2").setContent(R.id.tab2) .setIndicator("TAB2", this.getResources().getDrawable(R.drawable.img2))); tabHost.addTab(tabHost.newTabSpec("Tab_3").setContent(R.id.tab3) .setIndicator("TAB3", this.getResources().getDrawable(R.drawable.img3))); tabHost.setCurrentTab(1); // tabHost.setBackgroundColor(Color.GRAY); tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { public void onTabChanged(String tabId) { Dialog dialog = new AlertDialog.Builder(Test_TabWidget.this) .setTitle("提示").setMessage( "选中了" + tabId + "选项卡").setIcon(R.drawable.icon).setPositiveButton("确定", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }).create(); dialog.show(); } }); } }
第二种:就是定义我们自己的tabHost:不用继承TabActivity,具体代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/TabHost01" android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout android:layout_width="fill_parent"
- android:orientation="vertical" android:layout_height="fill_parent">
- <TabWidget android:id="@android:id/tabs"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- <FrameLayout android:id="@android:id/tabcontent"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout android:id="@+id/LinearLayout1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- <TextView android:text="one"
- android:id="@+id/TextView01" android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- </TextView>
- </LinearLayout>
- <LinearLayout android:id="@+id/LinearLayout2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- <TextView android:text="two"
- android:id="@+id/TextView02" android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- </TextView>
- </LinearLayout>
- <LinearLayout android:id="@+id/LinearLayout3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- <TextView android:text="three"
- android:id="@+id/TextView03" android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- </TextView>
- </LinearLayout>
- </FrameLayout>
- </LinearLayout>
- </TabHost>
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/TabHost01" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/LinearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="one" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="two" android:id="@+id/TextView02" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout3" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="three" android:id="@+id/TextView03" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> </LinearLayout> </FrameLayout> </LinearLayout> </TabHost>
- package com.Aina.Android;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.widget.TabHost;
- public class Test_TabHost extends Activity {
- /** Called when the activity is first created. */
- private TabHost tabHost;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- try{
- tabHost = (TabHost) this.findViewById(R.id.TabHost01);
- tabHost.setup();
- tabHost.addTab(tabHost.newTabSpec("tab_1")
- .setContent(R.id.LinearLayout1)
- .setIndicator("TAB1",this.getResources().getDrawable(R.drawable.img1)));
- tabHost.addTab(tabHost.newTabSpec("tab_2")
- .setContent(R.id.LinearLayout2).setIndicator("TAB2",
- this.getResources().getDrawable(R.drawable.img2)));
- tabHost.addTab(tabHost.newTabSpec("tab_3")
- .setContent(R.id.LinearLayout3).setIndicator("TAB3",
- this.getResources().getDrawable(R.drawable.img3)));
- tabHost.setCurrentTab(1);
- }catch(Exception ex){
- ex.printStackTrace();
- Log.d("EXCEPTION", ex.getMessage());
- }
- }
- }
package com.Aina.Android; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.widget.TabHost; public class Test_TabHost extends Activity { /** Called when the activity is first created. */ private TabHost tabHost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try{ tabHost = (TabHost) this.findViewById(R.id.TabHost01); tabHost.setup(); tabHost.addTab(tabHost.newTabSpec("tab_1") .setContent(R.id.LinearLayout1) .setIndicator("TAB1",this.getResources().getDrawable(R.drawable.img1))); tabHost.addTab(tabHost.newTabSpec("tab_2") .setContent(R.id.LinearLayout2).setIndicator("TAB2", this.getResources().getDrawable(R.drawable.img2))); tabHost.addTab(tabHost.newTabSpec("tab_3") .setContent(R.id.LinearLayout3).setIndicator("TAB3", this.getResources().getDrawable(R.drawable.img3))); tabHost.setCurrentTab(1); }catch(Exception ex){ ex.printStackTrace(); Log.d("EXCEPTION", ex.getMessage()); } } }
注意:第二种方法时布局文件中的TabWidget的id必须定义为:android:id="@android:id/tabs",FrameLayout的id必须定义为:android:id="@android:id/tabcontent" 其它控件没有限制,否则报错。
发表评论
-
android.os.NetworkOnMainThreadException
2011-12-24 13:14 1235不能在android的主线程中,执行一个网络操作 ... -
转载:为什么要对URI进行编码
2011-12-15 15:49 1078为什么需要Url编码,通常如果一样东西需要编码,说明这样东 ... -
multipart form-data boundary
2011-12-15 15:23 1022含义 ENCTYPE="multipart/ ... -
android http 附件
2011-12-15 14:17 1663一:服务器端: 1:struts-config.xml ... -
post 附件
2011-12-15 10:24 1006在做嘀咕客户端的时候,要实现拍照上传的功能。根据嘀咕api ... -
让Android应用获取系统权限
2011-12-08 18:46 1004在 android 的API中有提供 SystemCloc ... -
Android源码目录结构详解
2011-12-01 20:22 850Android 2.1 |-- Makefile |-- ... -
两个activity跳转
2011-11-25 16:06 1279Activity A跳转到 Activity B /**A. ... -
线程同步之wait()/notify()的使用
2011-11-21 11:24 1001wait()/notify() 通常,多 ... -
游戏中渲染线程与更新线程交替执行
2011-11-21 11:21 945private final State mThreadLock ... -
android colormatrix
2011-11-03 17:32 1497在编程中有时候需要 ... -
java栈,堆,池
2011-07-08 09:38 751今天复习了一下这些知识,顺便做了下笔记.1.寄存器:最快的存储 ... -
3D开发的境界
2011-06-04 20:12 704第一阶段:初学者阶 ... -
Http
2011-06-01 17:10 1312使用 HTTP 服务: 1. Apache HttpCline ... -
获取手机的Opengl的支持版本
2011-05-27 09:28 1464public int getGLVersion() { ... -
性能优化
2011-05-27 09:26 791如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集 ... -
Android游戏中其他语言数据类型之间的转换方法
2011-05-17 11:43 1236Java与其他语言数据类型之间的转换方法实例程序 /* ... -
android canvas.getClipBounds
2011-05-13 17:41 8439一种是传参数: Rect dstRect = new Re ... -
获取屏幕大小的方法
2011-05-13 17:38 603// one DisplayMetrics dm = n ... -
Android Lock 使用
2011-05-13 16:43 3210PowerManager 和PowerManager.Wa ...
相关推荐
在Android开发中,TabHost是一个重要的组件,它用于创建具有底部导航栏的应用界面,通常包含多个Tab,每个Tab对应一个不同的活动(Activity)或者视图(View)。本篇文章将深入探讨TabHost的各种实现方式,帮助...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签可以展示不同的内容或活动(Activity)。本教程将详细介绍如何使用TabHost,特别适合初学者和教学场景,例如构建一个模拟...
在Android开发中,`TabHost` 是一个非常重要的组件,用于实现多标签页面的切换,而将自定义的`ListView`填充到`TabHost`中则可以构建出复杂的交互界面。下面我们将详细探讨如何实现这一功能。 首先,我们需要了解`...
在Android开发中,TabHost是一个重要的组件,用于创建带有可切换标签的用户界面。这篇博客“TabHost两种实现方式”探讨了如何在Android应用中使用TabHost来构建多标签视图。下面我们将深入讨论这两种实现方式及其...
当我们提到“安卓 TabHost 嵌套 TabHost”,这意味着在一个TabHost内,我们还要再创建一个TabHost,形成一个多层选项卡的结构,以提供更复杂的导航体验。 首先,我们来理解基本的TabHost用法。TabHost通常由两部分...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...
在Android开发中,`TabHost`是一个非常重要的组件,它用于创建具有标签栏的多页面布局,用户可以通过点击不同的标签来切换不同的页面。这个“tabhost标签页面简单实现”的示例是一个初学者在学习Android时可能会遇到...
在Android开发中,TabHost和ViewPager是两种常用的组件,它们可以结合起来创建出具有滑动切换效果的界面。本文将深入探讨如何使用TabHost与ViewPager来实现这一功能,并提供相关的源码解析。 首先,TabHost是...
在Android开发中,TabHost是一个非常重要的组件,它允许我们创建具有多个标签(Tab)的界面,每个标签对应一个不同的活动(Activity)或视图(View)。本文将深入讲解如何在Android应用程序中有效地使用TabHost。 ...
在Android应用开发中,`ViewPager` 和 `TabHost` 是两个非常重要的组件,它们分别用于实现页面滑动和标签导航。本示例“ViewPager和Tabhost结合,可滑动的tabhost”展示了如何将这两个组件有效地结合起来,创建一个...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联到不同的Activity或View。本示例是关于如何使用TabHost实现单例模式的小例子,旨在帮助开发者理解如何在TabHost...
在Android开发中,TabHost组件是一个非常实用的控件,用于创建带有标签页的应用界面,让用户可以在多个功能之间轻松切换。本文将详细讲解如何使用TabHost,并通过实例代码进行演示。 首先,TabHost的核心组成部分...
在Android开发中,`TabHost`是一个非常重要的组件,它用于创建具有标签栏的界面,让用户可以通过不同的标签在多个视图之间切换。`TabHost`是Android提供的一个容器,可以容纳多个`TabWidget`(标签)和一个`...
在Android应用开发中,TabHost和ViewPager是两个非常重要的组件,它们可以用来创建用户友好的、多页面的交互式界面。TabHost通常用于创建带有标签的界面,而ViewPager则允许用户通过滑动来切换不同的页面。这个名为...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动(Activity)。TabHost结合TabWidget和FrameLayout工作,TabWidget用于显示选项卡,而...
在Android开发中,TabHost是一个常用的组件,用于实现多页面的切换效果,通常与TabWidget和FrameLayout一起使用,创建类似手机应用底部导航栏的布局。然而,在实际使用过程中,开发者经常会遇到一个问题:TabHost...
在Android开发中,TabHost是实现标签栏切换界面的一个关键组件。TabHost允许开发者创建一个具有多个Tab的界面,每个Tab都可以关联到不同的布局或活动(Activity),为用户提供直观的多视图导航体验。本文将深入讲解...
在Android开发中,`TabHost`和`ViewPager`是两种常用的界面组件,它们用于构建具有多个标签页的应用界面。下面将详细介绍这两个组件的工作原理、使用方法以及如何将它们结合使用。 `TabHost`是Android SDK提供的一...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的活动(Activity)或视图。本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。...