android tabHost布局之一 继承TabActivity并以activity布局

合集下载

TabHost详解

TabHost详解

Activity中的代码: Java代码 tabHost = getTabHost(); Java代码 LayoutInflater inflater_tab3 = LayoutInflater.from(this); inflater_tab3.inflate(yout.tab_search, tabHost.getTabContentView()); /* * yout.tab_search已被LayoutInflater注册,所以这个content可以通过findViewById获 得其对象 */ TabHost.TabSpec tabSpec_near = tabHost.newTabSpec("nearest"); tabSpec_near.setIndicator("Nearest", null); tabSpec_near.setContent(R.id.tab_hs_id); // 绑定一个新的Layout tabHost.addTห้องสมุดไป่ตู้b(tabSpec_near); //添加一个tab setContentView(tabHost); //设置avtivity的布局为tabHost
TabHost详解 详解
目标
TabHost静态应用 TabHost动态应用 TabHost高级应用
TabHost静态应用 静态应用
Android中使用TabHost 可以在一个屏幕间进行不同 版面的切换: 在Android中要实现Tab切换页面的效果,大致有 两种方法: 一是利用layout下的xml配置来实现tab的布局 二是动态加载tabHost进行布局。
1、利用xml文件配置,引用xml的activity不用继承 于TabActivity,通过findViewById方法获取TabHost , 具体的xml见下:

Android TabHost,TabWidget选项卡总结

Android TabHost,TabWidget选项卡总结

修炼-------------Android TabHost,TabWidget选项卡总结Android之TabHostTabHost,个人理解为选项卡的容器,是一种特殊的FrameLayout布局(帧布局) 根据SDK文档,Container for a tabbed window view. This object holds two children: a set of tab labels that the user clicks to select a specific tab, and a FrameLayout object that displays the contents of that page. The individual elements are typically controlled using this container object, rather than setting values on the child elements themselves。

TabHost主要由两部分组成,标签和内容,其中内容是一个FrameLayout,当用户单击不同的标签可以显示不同的内容。

使用标签可以达到分页的效果,是页面的内容更加丰富,更加具有亲和力,当然与此同时,也会增加页面的复杂程度.一个简单的TabHost布局1.首先继承TabActivity2.通过TabActivity的getTabHost()方法得到一个TabHost对象3.定义选项卡的内容(是一个FrameLayout的对象),并与TabHost绑定起来可以通过一下语句绑定TabHost容器的内容LayoutInflater.from(this).inflate(yout.main,tabHost.getTabContentView(), true);4.添加选项卡及设置选项的标题及内容我们知道添加选项卡需要指定一个TabSpec对象,通过TabHost的newTabSpec(选项卡的标识)可以得到,并且可以设定选项卡的标题(可以设置图片),并且设置选项卡内容,如tabHost.addTab(tabHost.newTabSpec("tab01").setIndicator("标签1",getResources().getDrawable(R.drawable.icon)) .setContent(R.id.tab01));...效果图:源码: tabtest01.zip(43.15 KB, 下载次数: 4)初学者注意了:如果在继承了TabActivity的类中设置了,setContentView(yout.main),则有可能导致错误,原因可能是因为main布局文件设置不正确(下面有详解),解决办法是建议先删除此行上面的例子中TabHost只是与一个布局容器绑定,也就是说各个选项卡的内容是写在一个布局文件中的,然后通过不同的id来区分各个选项卡的内容.如果选项卡的个数过多,或者每个选项卡的布局比较复杂的话,势必会使布局容器显得臃肿而且可读性比较差,不利于后期的维护。

AndroidTabLayout(选项卡布局)简单用法实例分析

AndroidTabLayout(选项卡布局)简单用法实例分析

AndroidTabLayout(选项卡布局)简单⽤法实例分析本⽂实例讲述了Android TabLayout(选项卡布局)简单⽤法。

分享给⼤家供⼤家参考,具体如下:我们在应⽤viewpager的时候,经常会使⽤TabPageIndicator来与其配合。

达到很漂亮的效果。

但是TabPageIndicator是第三⽅的,⽽且⽐较⽼了,当然了现在很多⼤神都已经开始⾃⼰写TabPageIndicator来满⾜⾃⼰的需求,在2015年的google⼤会上,google发布了新的Android Support Design库,⾥⾯包含了⼏个新的控件,其中就有⼀个TabLayout,它就可以完成TabPageIndicator的效果,⽽且还是官⽅的,最好的是它可以兼容到2.2以上版本,包括2.2。

下⾯我就举⼀个简单的例⼦来使⽤它。

这⾥使⽤的 android studio进⾏开发的,所以引⽤TabLayout很简单,只要在build.gradle中加⼊compile'com.android.support:design:22.2.0'即可。

这个使⽤是我在仿知乎的时候使⽤。

所以页⾯就和知乎很像了fragment_find.xml<LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="/apk/res-auto"android:orientation="vertical"><android.support.design.widget.TabLayoutandroid:id="@+id/tab_FindFragment_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/titleBlue"app:tabIndicatorColor="@color/white"app:tabSelectedTextColor="@color/gray"app:tabTextColor="@color/white"/><android.support.v4.view.ViewPagerandroid:id="@+id/vp_FindFragment_pager"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="1"/></LinearLayout>这⾥⾯没有什么特别的,就是添加了⼀个TabLayout和Viewpager作为上下的布局。

Android用tabhost实现界面切换,每个界面为一个独立的activity操作

Android用tabhost实现界面切换,每个界面为一个独立的activity操作

Android⽤tabhost实现界⾯切换,每个界⾯为⼀个独⽴的activity操作我就废话不多说了,⼤家还是直接看代码吧~// 要extends TabActivitypublic class Main_activity extends TabActivity {private TabHost tabHost;// 建⽴Tabhost控件protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);tabHost = getTabHost();addTab("act1", "界⾯1", blue_tooth_Activity.class);//添加addTab("act2", "界⾯2", map_Activity.class);addTab("act3", "界⾯3", plane_parameter_activity.class);setContentView(tabHost);// 显⽰}/*** 添加Activity标签* @param tag 标识* @param title 标签标题* @param clazz 激活的界⾯*/private void addTab(String tag, String title, Class clazz) {TabHost.TabSpec tabSpec = tabHost.newTabSpec(tag);tabSpec.setIndicator(title);Intent intent = new Intent(getApplicationContext(),clazz);tabSpec.setContent(intent);tabHost.addTab(tabSpec);}@Overrideprotected void onStop() {super.onStop();}}补充知识:Android BLE中传输数据的最⼤长度怎么破好多⼩伙伴们都被⼀个事⼉困扰过:想在gatt client上(⼀般是⼿机上)传输长⼀点的数据给gatt server(⼀般是⼀个Bluetooth smart设备,即只有BLE功能的设备),但通过writeCharacteristic(BluetoothGattCharacteristic)来写的时候发现最多只能写⼊20个byte的数据。

移动互联应用技术《android基础模块05》

移动互联应用技术《android基础模块05》
• Dialog 的使用
• notifyDataSetChanged的使用
第五页,共八页。
掌握ListView、GridView分页实现
• SimpleAdapter 的使用
• ListView的使用
第六页,共八页。
掌握ListView、GridView分页实现
• OnScrollListener的使用
第二页,共八页。
掌握 ListView、GridView加强〔增加数据,删除数据,修改数据
• 技术点 • 根本布局
• 使用 • 使用
第三页,共八页。
掌握ListView、GridView分页实现
OnClicListener 事件监听 Dialog 对话框的使用
第四页,共八页。
掌握ListView、GridView分页实现
第八页,共八页。
• "tb5"setIndicatorlabel, icon添加选项卡的标题〔String类型名字,图片资源ID〕 • 0;设置默认选项卡〔0代表默认第一个选项卡〕
第一页,共八页。
的选项卡
• 1〕定义布局 : 在ML文件中使用TabHost组件, 并在其中定义一个FrameLayout选项卡内容; • 2〕 继承TabActivity : 显示选项卡组件的Activity继承TabActivity; • 3〕 获取组件 : 通过调用getTabHost方法, 获取TabHost对象; • 4〕 创立添加选项卡 : 通过TabHost创立添加选项卡;
掌握android TabHost介绍
• 组件可以在界面中存放多个选项卡,每个选• 方法介绍:
• String tag ;创立一个选项卡〔String类型的选项名称〕 • "tb5"setContentviewId;添加选项卡的选项〔根据viewID〕 • "tb5"setContentintent;添加选项卡的选项〔intent对象〕 • "tb5"setIndicatorlabel;添加选项卡的标题〔String类型选项名〕 • "tb5"setIndicatorview;添加选项卡的标题〔view类型〕

Android 2.3 r1 API中文文档——TabHost(madgoat)

Android 2.3 r1 API中文文档——TabHost(madgoat)

TabHost译者署名:madgoat译者链接:翻译时间:2010-11-25版本:Android 2.3 r1结构继承关系public class TabHost extends FrameLayout implementsViewTreeObserver.OnTouchModeChangeListenerng.Objectandroid.view.Viewandroid.view.ViewGroupandroid.widget.FrameLayoutandroid.widget.TabHost类概述提供选项卡(Tab页)的窗口视图容器。

此对象包含两个子对象:一组是用户可以选择指定Tab页的标签;另一组是FrameLayout用来显示该Tab页的内容。

个别元素通常控制使用这个容器对象,而不是设置在子元素本身的值。

(译者注:即使使用的是单个元素,也最好把它放到容器对象ViewGroup里)内部类interface TabHost.OnTabChangeListener接口定义了当选项卡更改时被调用的回调函数interface TabHost.TabContentFactory当某一选项卡被选中时生成选项卡的内容class TabHost.TabSpec单独的选项卡,每个选项卡都有一个选项卡指示符,内容和tag标签,以便于记录.公共方法public void addTab (TabHost.TabSpec tabSpec)新增一个选项卡参数tabSpec 指定怎样创建指示符和内容.public void clearAllTabs ()从tab widget中移除所有关联到当前tab host的选项卡public boolean dispatchKeyEvent (KeyEvent event)分发按键事件到焦点传递路线上的下一视图。

焦点传递路线从视图树的顶层开始一直到当前获取焦点的视图停止。

如果此视图已经获取焦点,将分发给它自身。

详解Android应用中使用TabHost组件进行布局的基本方法

详解Android应⽤中使⽤TabHost组件进⾏布局的基本⽅法TabHost布局⽂件我们先来了解⼀下布局⽂件的基本内容:1. 根标签及id设置Android⾃带id : XML布局⽂件中, 可以使⽤标签设置, 其中的id 需要引⽤ android的⾃带id :android:id=@android:id/tabhost ;getHost()获取前提 : 设置了该id之后, 在Activity界⾯可以使⽤ getHost(), 获取这个TabHost 视图对象;⽰例 :复制代码代码如下:<tabhost android:id="@android:id/tabhost" android:layout_height="match_parent" android:layout_width="match_parent"> </tabhost>2. TabWidget组件选项卡切换 : 该组件是选项卡切换按钮, 通过点击该组件可以切换选项卡;设置android⾃带id : 这个组件的id要设置成android的⾃带id : android:id=@android:id/tabs ;TabHost必备组件 : 该组件与FrameLayout组件是TabHost组件中必备的两个组件;切换按钮下⽅显⽰ : 如果想要将按钮放到下⾯, 可以将该组件定义在下⾯, 但是注意,FrameLayout要设置android:layout_widget = 1;设置TabWidget⼤⼩ : 如果想要设置该按钮组件的⼤⼩, 可以设置该组件与FrameLayout组件的权重;⽰例 :复制代码代码如下:<tabwidget android:id="@android:id/tabs" android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="horizontal/"></tabwidget>3. FrameLayout组件组件作⽤ : 该组件中定义的⼦组件是TabHost中每个页⾯显⽰的选项卡, 可以将TabHost选项卡显⽰的视图定义在其中;设置android⾃带id : 这个组件的id要设置成android的⾃带的id : android:id=@android:id/tabcontent ;⽰例 :复制代码代码如下:<framelayout android:id="@android:id/tabcontent" android:layout_height="fill_parent" android:layout_weight="1" android:layout_width="fill_parent"></framelayout>⽰例上图为最终效果图代码结构图main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:id="@+id/hometabs"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><!-- TabHost必须包含⼀个 TabWidget和⼀个FrameLayout--><TabHost android:id="@+id/tabhost"android:layout_width="fill_parent"android:layout_height="wrap_content"><LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><!-- TabWidget的id属性必须为 @android:id/tabs--><TabWidget android:id="@android:id/tabs"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"></TabWidget><!-- FrameLayout的id属性必须为 @android:id/tabcontent--><FrameLayout android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/view1"android:layout_width="fill_parent"android:layout_height="fill_parent"/><TextView android:id="@+id/view2"android:layout_width="fill_parent"android:layout_height="fill_parent"/><TextView android:id="@+id/view3"android:layout_width="fill_parent"android:layout_height="fill_parent"/></FrameLayout></LinearLayout></TabHost></LinearLayout>java代码如下package .tagHost.test;import android.app.Activity;import android.os.Bundle;import android.widget.TabHost;import android.widget.TabWidget;public class TagHostTest2 extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);// 获取TabHost对象TabHost tabHost = (TabHost) findViewById(R.id.tabhost);// 如果没有继承TabActivity时,通过该种⽅法加载启动tabHosttabHost.setup();tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("第⼀个标签",getResources().getDrawable(R.drawable.icon)).setContent(R.id.view1));tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("第三个标签").setContent(R.id.view3));tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("第⼆个标签").setContent(R.id.view2));}}运⾏得到正确的结果。

Android-TabHost_用布局管理器实现标签选项卡

A VDSDKActivity_main.xml<TabHost xmlns:android="/apk/res/android"android:id="@+id/TabHost1"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TabWidgetandroid:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentTop="true"/><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:id="@+id/tab_edit"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><EditTextandroid:id="@+id/edit"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="请输入检索关键字..."android:textSize="18px"/><Buttonandroid:id="@+id/but"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="搜索"/></LinearLayout><LinearLayoutandroid:id="@+id/tab_clock"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><AnalogClockandroid:id="@+id/myAnalogClock"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout><LinearLayoutandroid:id="@+id/tab_sex"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><RadioGroupandroid:id="@+id/sex"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical"><RadioButtonandroid:id="@+id/male"android:checked="true"android:text="性别:男"/><RadioButtonandroid:id="@+id/female"android:text="性别:女"/></RadioGroup></LinearLayout></FrameLayout></LinearLayout></TabHost>Mainactivity.javapackage com.example.androidtest_tabhost02;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TabHost;import android.widget.TabHost.TabSpec;public class MainActivity extends Activity {private TabHost myTabHost=null;private int[] layRes={R.id.tab_edit,R.id.tab_clock,R.id.tab_sex};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(yout.activity_main);myTabHost=(TabHost)super.findViewById(R.id.TabHost1);myTabHost.setup();for(int x=0;x<layRes.length;x++){TabSpec myTab=myTabHost.newTabSpec("tab"+x);myTab.setIndicator("标签"+x);myTab.setContent(yRes[x]);myTabHost.addTab(myTab);}myTabHost.setCurrentTab(1);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}。

AndroidTablayout自定义Tab布局的使用案例

AndroidTablayout⾃定义Tab布局的使⽤案例开发公司的项⽬中需要实现以下效果图,需要⾃定义TabLayout 中的TabTablayout xml<android.support.design.widget.TabLayoutandroid:id="@+id/dialog_mod_icon_tablayout"android:layout_width="wrap_content"android:layout_height="wrap_content"app:tabIndicatorHeight="0dp"android:paddingLeft="@dimen/commom_margin_20"app:tabMode="scrollable"app:tabPaddingStart="@dimen/commom_margin_5"app:tabPaddingEnd="@dimen/commom_margin_5"app:tabSelectedTextColor="@color/common_tv_dark_red" />其中如果多个tab 需要滚动则要设置app:tabMode="scrollable",对于tabPaddingStart与tabPaddingEnd则是设置Tab 的左边和右边padding,根据具体的需求来设置就好,这⾥如果没有设置,TabLayout 或⾃动设置⼀个默认的值給Tab,setCustomView()设置⾃定义的Tab布局給TablayoutTabLayout.Tab tab = tabLayout.newTab();View view = LayoutInflater.from(context).inflate(yout.widget_choose_icon_tab_bg, null);TextView tv = (TextView) view.findViewById(R.id.choose_icon_tab_tv);tv.setText(listData.get(i).getName());tab.setCustomView(view);tabLayout.addTab(tab);widget_choose_icon_tab_bg.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/choose_icon_tab_tv"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"android:background="@drawable/selector_icon_choose_txt_bg"android:padding="@dimen/commom_margin_4"android:textSize="@dimen/commom_tv_size_12"android:textStyle="bold" /></LinearLayout>selector_icon_choose_txt_bg<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:drawable="@drawable/shape_icon_choose_select" android:state_checked="true" /><item android:drawable="@drawable/shape_icon_choose_select" android:state_selected="true" /><item android:drawable="@drawable/shape_icon_choose_no_select" /></selector>shape_icon_choose_select<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="/apk/res/android"><corners android:radius="@dimen/commom_margin_2"/><stroke android:color="@color/common_bg_dali_gray_cc4" android:width="1dp"/></shape>shape_icon_choose_no_select<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="/apk/res/android"><corners android:radius="@dimen/commom_margin_2"/><stroke android:color="@color/common_bg_dali_gray_62" android:width="1dp"/></shape>通过以上设置,就实现了我图中TabLayout 的⼦Tab的布局。

TabHost的学习使用

TabHost效果实现TabHost控件我们可以简单的把它当作一个“Activity”,其中包括托盘(TabWidget)部分,以及点击托盘的任意选项后,所显示的不同内容,TabHost是该页面的最大的容器;TabWidget就是托盘部分,主要用来显示不同的栏目,既可以放在顶部,也可以放在底部,主要包括tabSpec及tabContent;TabSpec就是TabWidget的一个个栏目,可以为它添加icon图标、在icon图标下方添加栏目名称,当用户点击任意TabSpec时,将会显示相应的TabContent中所设置的内容。

TabHost的使用与ListView一样,有两种方式;第一钟是让当前的Activity继承于TabActivity,使用系统自带的TabHost。

在高版本中TabActivity已被废弃。

第二种是在布局文件中添加自己的TabHost,通过findViewById方法获取该TabHost,注意TabHost中应包含FrameLayout和TabWidget子元素,并且这两个元素的id应为@android:id/tabcontent和@android:id/tabs。

Call setup() before adding tabs if loading T abHost using findViewById(),Y ou do not need to call setup() after getT abHost() in android.app.T abActivity。

为什么需要为FrameLayout和T abWidget指定Id?因为在setUp方法内部有如下语句:mTabWidget = (TabWidget) findViewById(com.android.internal.R.id.tabs);如果mTabWidget 为空,则抛出异常:Y our TabHost must have a TabWidget whose id attribute is 'android.R.id.tabs'。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

android tabHost布局之一继承TabActivity并以activity布局分类:android_布局2011-02-25 11:58 1333人阅读评论(1) 收藏举报先查看下最终效果图:再看下代码结构:其中black.gif顾名思义就是一个黑背景图片,grey.gif就是一张灰色的背景图片然后直接上代码:ArtistActivity.java+ expand sourceview plaincopy to clipboardprint?1. p ackage .tagview;2.3. i mport android.app.Activity;4. i mport android.os.Bundle;5. i mport android.widget.TextView;6.7. p ublic class ArtistActivity extends Activity {8.9. @Override10. protected void onCreate(Bundle savedInstanceState) {11. super.onCreate(savedInstanceState);12. TextView textView = new TextView(this);13. // 该文档将会作为标签的内容进行显示14. textView.setText("艺术内容");15. setContentView(textView);16.17. }18. }1. p ackage .tagview;2.3. i mport android.app.Activity;4. i mport android.os.Bundle;5. i mport android.widget.TextView;6.7. p ublic class MusicActivity extends Activity {8.9. @Override10. protected void onCreate(Bundle savedInstanceState) {11. super.onCreate(savedInstanceState);12. TextView textView = new TextView(this);13. // 该文档将会作为标签的内容进行显示14. textView.setText("音乐内容");15. setContentView(textView);16. }17. }1. p ackage .tagview;2.3. i mport android.app.Activity;4. i mport android.os.Bundle;5. i mport android.widget.TextView;6.7. p ublic class SportActivity extends Activity {8.9. @Override10. protected void onCreate(Bundle savedInstanceState) {11. super.onCreate(savedInstanceState);12. TextView textView = new TextView(this);13. // 该文档将会作为标签的内容进行显示14. textView.setText("运动内容");15. setContentView(textView);16.17. }18. }1. <?xml version="1.0"encoding="utf-8"?>2. <selector3. xmlns:android="/apk/res/android"4. >5. <item android:drawable="@drawable/grey"6. android:state_selected="true"7. ></item>8. <item android:drawable="@drawable/black"9.10. ></item>11. </selector>1. p ackage .tagview;2.3. i mport android.app.TabActivity;4. i mport android.content.Intent;5. i mport android.content.res.Resources;6. i mport android.os.Bundle;7. i mport android.widget.TabHost;8.9. /**10. * @author chenzheng_Java11. * @description 注意,该类一定要继承TabActivity12. */13. public class TagView extends TabActivity {14. @Override15. public void onCreate(Bundle savedInstanceState) {16. super.onCreate(savedInstanceState);17. // setContentView(yout.main);18. // android代码中访问application资源的一个类19. Resources resources = getResources();20. // 获取当前activity的标签,该方法的实现中已经执行了setContentView(yout.tab_content);21. TabHost tabHost = getTabHost();22. // 每一个标签项23. TabHost.TabSpec spec;24.25. // 声明一个意图,该意图告诉我们,下一个跳转到的activity是ArtistActivity。

26. Intent intent = new Intent(this, ArtistActivity.class);27. /**28. * tabHost.newTabSpec("artist")创建一个标签项,其中artist为它的标签标识符,相当于jsp页面标签的name属性29. * setIndicator("艺术标签",resources.getDrawable(R.drawable.ic_tab))设置标签显示文本以及标签上的图标(该图标并不是一个图片,而是一个xml文件哦)30. * setContent(intent)为当前标签指定一个意图31. * tabHost.addTab(spec); 将标签项添加到标签中32. */33. spec = tabHost.newTabSpec("artist").setIndicator("艺术标签",34. resources.getDrawable(R.drawable.ic_tab)).setContent(intent);35. tabHost.addTab(spec);36.37. Intent intent2 = new Intent(this, MusicActivity.class);38. spec = tabHost.newTabSpec("music").setIndicator("音乐标签",39. resources.getDrawable(R.drawable.ic_tab)).setContent(intent2);40. tabHost.addTab(spec);41.42. Intent intent3 = new Intent(this, SportActivity.class);43. spec = tabHost.newTabSpec("sport").setIndicator("体育标签",44. resources.getDrawable(R.drawable.ic_tab)).setContent(intent3);45. tabHost.addTab(spec);46.47. // tabHost.setCurrentTabByTag("music");设置第一次打开时默认显示的标签,该参数与tabHost.newTabSpec("music")的参数相同48. tabHost.setCurrentTab(1);//设置第一次打开时默认显示的标签,参数代表其添加到标签中的顺序,位置是从0开始的哦。

49.50. }51. }1. <?xml version="1.0"encoding="utf-8"?>2. <manifest xmlns:android="/apk/res/android"3. package=".tagview"4. android:versionCode="1"5. android:versionName="1.0">6. <uses-sdk android:minSdkVersion="8"/>7.8. <application android:icon="@drawable/icon"android:label="@string/app_name">9. <!-- android:theme="@android:style/Theme.NoTitleBar" 的意思是将系统默认的tag标签去掉,为咱们自己的标签空出位置-->10. <activity android:name=".TagView"11. android:label="@string/app_name"12. android:theme="@android:style/Theme.NoTitleBar"13. >14. <intent-filter>15. <action android:name="android.intent.action.MAIN"/>16. <category android:name="UNCHER"/>17. </intent-filter>18. </activity>19. <!-- 在主配置文件中声明用于标签切换的3个activity,记住此处一定要声明,否则会出错20. android:name="ArtistActivity"里面ArtistActivity前面是否有.都可以,你只需要保证该类是在manifest标签下package属性的包中即可。

相关文档
最新文档