`
endual
  • 浏览: 3546630 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android的TabHost

 
阅读更多

哎,看来我的学习能力真是差啊,搞一个简单的tab居然搞了5个小时才弄好,

其实官方的demo更加清楚,呵呵。

 

 

这边的a.class,b.class,c.class 中的a,b,c都是类的名字,不同的activity。

 

文章是转来的,我绝对还挺不错的,就写了

 

 

 

 

 

 

 

Android的TabHost是一个很好的分页的控件

能够把自己的程序的多个activity组织起来

 

这里面联系到的概念有ActivityGroup

TabActivity

 

使用TabHost构建程序有两种方法

一种是在java代码里,一种是在xml代码里

 

一种方法是在java里直接写

 

[java] view plaincopy
  1. private TabHost mtabHost;  
  2. mtabHost = getTabHost();   
  3.                  mtabHost.addTab(mtabHost.newTabSpec("tab1")   
  4.                          .setIndicator(getString(R.string.tabs_1_tab_1), getResources().getDrawable(R.drawable.undo))   
  5.                          .setContent(this));   
  6.                  mtabHost.addTab(mtabHost.newTabSpec("tab2")   
  7.                          .setIndicator(getString(R.string.tabs_1_tab_2),getResources().getDrawable(R.drawable.undo))   
  8.                          .setContent(this));   
  9.                  mtabHost.addTab(mtabHost.newTabSpec("tab3")   
  10.                          .setIndicator(getString(R.string.tabs_1_tab_3),getResources().getDrawable(R.drawable.undo))   
  11.                          .setContent(this));   
  12.                  mtabHost.addTab(mtabHost.newTabSpec("tab4")   
  13.                          .setIndicator(getString(R.string.tabs_1_tab_4),getResources().getDrawable(R.drawable.undo))   
  14.                          .setContent(new Intent(this, inviteTab.class)));   
  15.                  mtabHost.addTab(mtabHost.newTabSpec("tab5")   
  16.                          .setIndicator(getString(R.string.tabs_1_tab_5),getResources().getDrawable(R.drawable.tab_set))   
  17.                          .setContent(this));   
  18.                  mtabHost.addTab(mtabHost.newTabSpec("tab6")   
  19.                          .setIndicator(getString(R.string.tabs_1_tab_6),getResources().getDrawable(R.drawable.undo))   
  20.                          .setContent(this));   
  21.                  mtabHost.addTab(mtabHost.newTabSpec("tab7")   
  22.                          .setIndicator(getString(R.string.tabs_1_tab_7),getResources().getDrawable(R.drawable.tab_help))   
  23.                          .setContent(this));   
  24.                  mtabHost.addTab(mtabHost.newTabSpec("tab8")   
  25.                          .setIndicator(getString(R.string.tabs_1_tab_8),getResources().getDrawable(R.drawable.tab_help))   
  26.                          .setContent(this));   
  27.                  mtabHost.setOnTabChangedListener( this);  
 

 

 

然后需要重载两个函数

 

[java] view plaincopy
  1. public void onTabChanged(String tagString) {  
  2.         // TODO Auto-generated method stub  
  3.           
  4.     }  
  5.     @Override  
  6.     public View createTabContent(String arg0) {  
  7.      final TextView tv = new TextView(this);   
  8.      tv.setText("Content for tab with tag " + arg0);   
  9.  return tv;  
  10. }   
 

 

 

这样就可以实现一个初步的TabHost

 

 

另外一种方法

还可以在xml文件里画TabHost界面

 

比如最近我做一个项目,就遇到需要把TabHost放在屏幕下方

 

代码如下

这是main.xml

 

[xhtml] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <TabHost android:id="@+id/edit_item_tab_host"  
  6.         android:layout_width="fill_parent" android:layout_height="fill_parent">  
  7.         <LinearLayout android:orientation="vertical"  
  8.             android:layout_width="fill_parent" android:layout_height="fill_parent"  
  9.             android:padding="5dp">  
  10.             <FrameLayout android:id="@android:id/tabcontent"  
  11.                 android:layout_width="fill_parent" android:layout_height="wrap_content"  
  12.                 android:padding="5dp" android:layout_weight="1" />  
  13.             <TabWidget android:id="@android:id/tabs"  
  14.                 android:layout_width="fill_parent" android:layout_height="wrap_content"  
  15.                 android:layout_weight="0" />  
  16.         </LinearLayout>  
  17.     </TabHost>  
  18. </LinearLayout>  
 

 

主文件里

 

 

[c-sharp] view plaincopy
  1. public static TabHost tab_host;  
  2. setContentView(R.layout.main);  
  3. tab_host = (TabHost) findViewById(R.id.edit_item_tab_host);  
  4.         tab_host.setup(this.getLocalActivityManager());  
  5.         TabSpec ts1 = tab_host.newTabSpec("TAB_1");   
  6.         ts1.setIndicator(getString(R.string.a),getResources().getDrawable(R.drawable.a));   
  7.         ts1.setContent(new Intent(this, a.class));   
  8.         tab_host.addTab(ts1);  
  9.         TabSpec ts2 = tab_host.newTabSpec("TAB_2");   
  10.         ts2.setIndicator(getString(R.string.b),getResources().getDrawable(R.drawable.b));   
  11.         ts2.setContent(new Intent(this, b.class));   
  12.         tab_host.addTab(ts2);  
  13.         TabSpec ts3 = tab_host.newTabSpec("TAB_3");   
  14.         ts3.setIndicator(getString(R.string.c),getResources().getDrawable(R.drawable.c));   
  15.         ts3.setContent(new Intent(this, c.class));   
  16.         tab_host.addTab(ts3);  
  17.           
  18.         TabSpec ts4 = tab_host.newTabSpec("TAB_4");   
  19.         ts4.setIndicator(getString(R.string.d),getResources().getDrawable(R.drawable.d));   
  20.         ts4.setContent(new Intent(this, d.class));   
  21.         tab_host.addTab(ts4);  
  22.         tab_host.setCurrentTab(0);  
  23.         tab_host.setOnTabChangedListener(new OnTabChangeListener(){  
  24.             @Override  
  25.             public void onTabChanged(String tabId) {  
  26.                 // TODO Auto-generated method stub  
  27.                   
  28.               
  29.         });  
 

 

 

这样就可以构建出一个很好的TabHost的界面

分享到:
评论

相关推荐

    android Tabhost使用Demo

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的活动(Activity)或视图。本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。...

    Android TabHost Spinner ListView 实例代码

    在Android开发中,`TabHost`、`Spinner`和`ListView`是三个非常重要的组件,它们各自承担着不同的功能,并且可以协同工作以提供丰富的用户界面。`TabHost`用于创建多标签界面,`Spinner`则是一种下拉选择菜单,而`...

    androidtabhost的使用

    androidTabhost的使用实例代码,仅供参考

    android tabhost 动态添加 删除 排序 重命名

    android tabhost 动态添加 删除 排序 重命名

    android tabhost 动态添加,删除,排序,重命名(5)

    android tabhost 动态添加,删除,排序,重命名

    android tabhost 日期

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动。在这个特定的场景中,我们看到标题提及“android tabhost 日期”,这意味着开发者可能在...

    android tabhost 动态添加,删除,排序,重命名(1)

    android tabhost 动态添加,删除,排序,重命名

    android TabHost简单使用

    在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...

    android TabHost分页

    android TabHost分页 demo 一开始就能用

    Android Tabhost 实例demo

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者帧布局(FrameLayout)。本实例演示了如何在Android应用程序中自定义TabHost,以...

    Android 嵌套TabHost示例

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...

    android Tabhost 实现底部菜单效果

    在Android开发中,TabHost是实现底部导航菜单的一种传统方式,它允许用户在多个标签页之间切换,每个标签页通常代表一个不同的功能区域。本文将详细介绍如何使用TabHost来创建带有图片和文字,并且在选中时有明显...

    Android TabHost 实例源码

    在Android开发中,TabHost是一个核心组件,它用于创建具有多个可切换标签的用户界面,类似于浏览器中的标签页。TabHost结合TabWidget和FrameLayout一起工作,提供了在单个屏幕上组织多个活动(Activities)或视图...

    android TabHost

    在Android开发中,`TabHost`是一个非常重要的组件,它用于创建具有标签页导航的应用界面。`TabHost`提供了一种方便的方式来组织多个`Activity`或`View`,每个`Activity`或`View`对应一个标签页。在这个“android ...

    Android TabHost实例完整工程源码

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以关联到一个不同的Activity或Fragment,实现多页面的切换。本实例提供了一个完整的TabHost应用源码,帮助开发者...

    Android TabHost 经典使用技巧

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的Activity或Fragment,实现多视图的切换。本文将深入探讨Android TabHost的经典使用技巧,帮助开发者构建...

    Android TabHost 标签在屏幕左侧样例

    在Android开发中,TabHost是一个常用的组件,用于创建带有多个Tab的界面,这些Tab可以切换不同的内容区域。然而,Android SDK中的默认TabHost设计将标签置于屏幕顶部或底部,这可能无法满足所有开发者的设计需求。在...

    android tabhost --android UI源码.rar

    在Android开发中,TabHost是实现标签栏布局的重要组件,它是Android SDK提供的一种原生UI控件,用于创建带有多个选项卡的应用界面。这个“android tabhost --android UI源码.rar”压缩包文件包含了关于如何使用...

    android tabhost --android UI源码.zip

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,让用户可以在不同的视图间切换,从而实现类似浏览器的导航体验。本项目源码着重展示了如何利用TabHost构建复杂的Android UI。以下...

Global site tag (gtag.js) - Google Analytics