创建一个项目。Tab继承自TabActivity.

main.xml:

<?xml version="1.0" encoding="utf-8"?><!--  这里是根节点布局  -->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- 第一个Tab 对应的布局 -->
<TextView
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="tab1"/>
<!-- 第二个Tab 对应的布局 -->
<TextView
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="tab2"/>
<!-- 第三个Tab 对应的布局 -->
<TextView
android:id="@+id/tab3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="tab3"/>
</FrameLayout>

Tab.class

package com.example.Tab;

import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
import android.widget.Toast; public class Tab extends TabActivity
{
private TabHost tabHost; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//从TabActivity上面获取放置Tab的TabHost
tabHost = getTabHost();
//from(this)从这个TabActivity获取LayoutInflater
//R.layout.main 存放Tab布局
//通过TabHost获得存放Tab标签页内容的FrameLayout
//是否将inflate 拴系到根布局元素上
LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(), true);
//设置TabHost的颜色
tabHost.setBackgroundColor(Color.argb(150, 150, 150, 150));
//制造一个新的标签tab1,这个名字就是onTabChanged中的参数s
//设置一下显示的标题为Tab_1,设置一下标签图标
//设置一下该标签页的布局内容为R.id.tab1,这是FrameLayout中的一个子Layout
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Tab_1", getResources().getDrawable(R.drawable.icon))
.setContent(R.id.tab1));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Tab_2", getResources().getDrawable(R.drawable.icon))
.setContent(R.id.tab2));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("Tab_3", getResources().getDrawable(R.drawable.icon))
.setContent(R.id.tab3));
//设置标签切换动作
tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener()
{
@Override
public void onTabChanged(String s)
{
Toast.makeText(Tab.this, "Tab Change to " + s, Toast.LENGTH_LONG).show();
}
});
setContentView(tabHost);
}
}

效果:

参考:

http://www.apkbus.com/android-720-1-1.html

http://my.oschina.net/zt1212/blog/82786

最简单的TabHost的更多相关文章

  1. Android TabHost的使用

    标签显示界面的主要特点是可以在一个窗口中显示多组标签栏的类容. 在Android系统中,每个标签栏称为一个Tab,而包含多个标签栏的内容就称为TabHost. 通过TabHost的继承结构来看,Tab ...

  2. Android-自定义TabHost

    效果图: 布局代码相关: <!-- 自定义简单的TabHost选项卡 --> <LinearLayout xmlns:android="http://schemas.and ...

  3. TabHost 简单用法

    package com.google.tabhost;    import android.app.TabActivity;  import android.os.Bundle;  import an ...

  4. 深入浅出Tabhost+简单入门Demo

    小伙伴们在手机上逛淘宝的时候,会发现在淘宝的下面有个按钮,分别是首页.微淘.社区.购物车和我的淘宝,点击不同的按钮会跳转到不同的页面,目前小编所接手的这个项目,也需要用到类似这样的功能,小编就发挥网络 ...

  5. Android:简单实现ViewPager+TabHost+TabWidget实现导航栏导航和滑动切换

    viewPager是v4包里的一个组件,可以实现滑动显示多个界面. android也为viewPager提供了一个adapter,此adapter最少要重写4个方法: public int getCo ...

  6. 创建TabHost的两种方式的简单分析

    最近做了一个TabHost的界面,在做的过程中发现了一些问题,故和大家分享一下. 首先我的界面如下: 目前就我所知,创建TabHost有两种方式,第一种是继承TabActivity类,然后用getTa ...

  7. ViewPager+Fragment替代TabHost效果的简单示例

    本示例旨在展示fragment替代tabhost的效果,具体的业务逻辑还要根据这个示例进行扩展. 效果图如下: 主Activity代码: package com.llb.view; import ja ...

  8. Android 常用UI控件之TabHost(2)简单示例

    1,布局 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tool ...

  9. Android TabHost使用

    TabHost是Android中自带的选项卡控件,效果图如下: 主布局文件 <RelativeLayout xmlns:android="http://schemas.android. ...

随机推荐

  1. 运用Unity实现AOP拦截器[结合异常记录实例]

      本篇文章将通过Unity实现Aop异常记录功能:有关Unity依赖注入可以看前两篇文章: 1:运用Unity实现依赖注入[结合简单三层实例] 2:运用Unity实现依赖注入[有参构造注入] 另早期 ...

  2. ZK框架笔记2、ZK框架安装、相关类库、web及zk配置

    1.先去ZK官网注册一个账号 2.在MyEclipse菜单栏中Help----Eclipse Marketplace中搜索ZK Studio,点击install安装即可         3.相关类库 ...

  3. Linux程序存储结构与进程结构 堆和栈的差别

    摘要:本文主要讲述了Linux系统中.程序存储结构(代码区.数据段和BBS区)与进程的基本结构(代码区.数据段.BBS区.堆和栈).以及堆和栈的差别. Linux程序存储结构与进程结构 1.Linux ...

  4. sql 数据类型 论可变长度字符串与定长性能差异(my sql版)

    首先从字节上来说CHAR是定长,意思就是只要输入在我这个定长以下,不管是几个字符,它的实际占用空间都是CHAR定长的长度.而VARCHAR则相对来说会节省一点空间,比如:你VARCHAR的长度设为10 ...

  5. HTTP Cache怎样计算Age

    这里的Age指的是响应头Age.以下内容有部分翻译,也有部分自己的理解.欢迎讨论. 我们用now表示当前主机的当前时间,用request_time表示缓存发起请求的时间,用response_time表 ...

  6. js操作注意事项

    1.函数赋值给变量时,不能加括号 function fun() { ... } var str=fun; 2.js创建构造函数和调用对象,对象内不能用var 变量,只能用this function f ...

  7. Kafka 快速起步

    Kafka 快速起步 原创 2017-01-05 杜亦舒 性能与架构 性能与架构 性能与架构 微信号 yogoup 功能介绍 网站性能提升与架构设计 主要内容:1. kafka 安装.启动2. 消息的 ...

  8. 关于Unity实现游戏录制功能的思考

    录制无非两种做法,录制操作和录制行为. 录制操作要考虑到随机行为,但其实也可以两者混合.如果随机行为过多,并且随机行为无法用种子复现,可以完全用录制的方式 最后再统一压缩 这里yy的就是录制行为的做法 ...

  9. C# Lpt 并口热敏小票打印机打印位图

    class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { L ...

  10. Ubuntu 的 apt-get 代理设置(zhuan)

    url: http://qixinglu.com/post/ubuntu_apt-get_proxy_setup.html 升级到 Ubuntu10.04 后,发现 apt-get 的代理设置有改变了 ...