- 浏览: 114760 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (98)
- java (27)
- jms (2)
- jta (0)
- 性能调优及内存分析 (4)
- 设计模式 (14)
- 框架 (6)
- 其它 (9)
- job (1)
- maven (1)
- 服务器 (2)
- 分布式 (3)
- ibatis (1)
- linux (0)
- mysql (0)
- 并发编程 (0)
- java多线程 (2)
- 前端跨域 (1)
- 线程dump分析 (0)
- velocity (0)
- 数据库 (2)
- 协议 (0)
- 监控 (0)
- 开源软件 (2)
- 算法 (0)
- 网络 (1)
- spring (1)
- 编码 (0)
- 数据结构 (0)
- HTable和HTablePool使用注意事项 (0)
- opencms (0)
- android (16)
- 操作系统 (2)
- top (0)
最新评论
-
hold_on:
@Override public boolea ...
android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片) -
achersnake:
123
Servlet中listener(监听器)和filter的总结 -
angel243fly:
我用了这个方法,还是报同样的错误,还有什么建议吗?
eclipse提示CreateProcess error=87错误的解决方法
TabSpec与TabHost
TabHost相当于浏览器中浏览器分布的集合,而Tabspec则相当于浏览器中的 每一个分页面。d在Android中,每一个TabSpec分布可以是一个组件,也可以是一个布局,然后将每一个分页装入TabHost 中,TabHost即可将其中的每一个分页一并显示出来。
步骤:
(1)继承TabActivity:在此之前继承的都是android.app.Activity类,但是这里需要继承android.app.TabActivity。
(2)创建TabHost分布菜单对象,利用以下代码。
LayoutInflater.from(this).inflate(R.layout.main,tableHost.getTabContentView());
(3)实例化实分页
java代码:
[html]
view plain
copy
- package com.test;
- import android.app.Activity;
- import android.app.TabActivity;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.widget.TabHost;
- import android.widget.TabHost.OnTabChangeListener;
- import android.widget.Toast;
- import android.widget.TabHost.TabSpec;
- public class MainActivity extends TabActivity implements OnTabChangeListener {
- /** Called when the activity is first created. */
- private TabSpec ts1 ,ts2, ts3 ;//声明3个分页
- private TabHost tableHost;//分页菜单(tab的容器)
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- tableHost = this .getTabHost();//实例 (分页)菜单
- //利用LayoutInflater将布局与分页菜单一起显示
- LayoutInflater.from(this).inflate(R.layout.main, tableHost.getTabContentView());
- ts1 = tableHost .newTabSpec("tabOne");//实例化一个分页
- ts1.setIndicator("Tab1");//设置此分页显示的标题
- ts1.setContent(R.id.btn);//设置此分页的资源id
- ts2 = tableHost .newTabSpec("tabTwo");//实例化第二个分页
- //设置此分页显示的标题和图标
- ts2.setIndicator("Tab2",getResources().getDrawable(R.drawable.icon));
- ts2.setContent(R.id.et);
- ts3 = tableHost .newTabSpec("tabThree");//实例化第三个分页
- ts3.setIndicator("Tab3");
- ts3.setContent(R.id.mylayout);//设置此分页的布局id
- tableHost.addTab(ts1);//菜单中添加ts1分页
- tableHost.addTab(ts2);
- tableHost.addTab(ts3);
- tableHost.setOnTabChangedListener(this);
- }
- public void onTabChanged(String tabId){
- if(tabId.equals("tabOne")){
- Toast.makeText(this, "分页1", Toast.LENGTH_LONG).show();
- }
- if(tabId.equals("tabTwo")){
- Toast.makeText(this, "分页2", Toast.LENGTH_LONG).show();
- }
- if(tabId.equals("tabThree")){
- Toast.makeText(this, "分页3", Toast.LENGTH_LONG).show();
- }
- }
- }
布局代码:
[html]
view plain
copy
- <? xml version = "1.0" encoding = "utf-8" ?>
- < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
- android:layout_width = "fill_parent"
- android:layout_height = "fill_parent"
- android:orientation = "vertical" >
- < Button
- android:id = "@+id/btn"
- android:layout_width = "fill_parent"
- android:layout_height = "fill_parent"
- android:text = "This is Tab1"
- />
- < EditText
- android:id = "@+id/et"
- android:layout_width = "fill_parent"
- android:layout_height = "wrap_content"
- android:text = "This is Tab2"
- />
- < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
- android:orientation = "vertical"
- android:layout_width = "fill_parent"
- android:layout_height = "fill_parent"
- android:id = "@+id/mylayout"
- android:background = "@drawable/bg"
- >
- < Button
- android:layout_width = "fill_parent"
- android:layout_height = "wrap_content"
- android:text = "This is Tab3"
- />
- < EditText
- android:layout_width = "fill_parent"
- android:layout_height = "wrap_content"
- android:text = "This is Tab3"
- />
- </ LinearLayout >
- </ LinearLayout >
运行结果:
总结:监听分页改变事件,具体如下:
1、使用OnTabChangeListener接口,重写OnTabChanged(String tabId)函数
2、TabHost绑定监听器
3、判断OnTabChanged(String tabId)中的tabId参数进行处理事件;这里的tabId对应的是实例中每个分页传入的分页ID,而不是TabSpec.setIndicatior()设置的标题
转:http://blog.csdn.net/myserverthepeople/article/details/7630052
发表评论
-
android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片)
2013-01-15 20:02 2910http://blog.csdn.net/jj120522 ... -
Maven Android Plugin
2013-01-06 16:20 1641Maven Android Plugin h ... -
解决Android模拟器无法用PC键盘输入与模拟器外部功能添加.
2013-01-06 16:20 1490公司发了PC后重新装了Android开发环境. 但是在模拟器上 ... -
Android Fragment使用
2012-12-20 17:29 906你可以像为View一样, 为fragment指定lay ... -
Android异步处理四:AsyncTask的实现原理
2012-12-14 09:08 1035在《Android异步处理二:使用AsyncTask异步 ... -
Android异步处理三:Handler+Looper+MessageQueue深入详解
2012-12-14 09:06 1021在《Android异步处理一:使用Thread+Hand ... -
Android异步处理二:使用AsyncTask异步更新UI界面
2012-12-14 09:00 1076在《Android异步处理一:使用Thread+Hand ... -
Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
2012-12-14 08:48 1044概述:每个Android应用程序都运行在一个dalvik ... -
Android 中LayoutInflater的使用
2012-12-11 20:11 0大家好我们这一节讲的是LayoutInflater的使用,在实 ... -
邵洋江 android之tabhost讲解
2012-12-11 19:15 0Tab标签页是界面设计时经常使用的界面控件,可以实现多个分页之 ... -
android Bitmap用法总结
2012-12-10 13:09 0android Bitmap用法总结 http://ww ... -
Parcelable接口应用
2012-11-30 19:53 0Android中Intent传递对象有两个方法,一个是让 ... -
常用的android弹出对话框
2012-11-09 08:47 0http://blog.csdn.net/chenlei ... -
Android实现推送方式解决方案
2012-11-07 13:44 0转:http://www.cnblogs.com/han ... -
Android 之 下拉框(Spinner)的使用
2012-11-06 15:16 0下拉列表 Spinner。 Spinner的使用,可以极 ... -
android ListView添加事件并获取选中项的值
2012-11-05 11:45 0转:http://www.beijibear.com/?aid ... -
Android 用TextView做菜单的多个onClick事件的处理
2012-11-02 19:23 0TextView控件使用OnClick事件监听的时候,会遇到一 ... -
在ListView中显示网络图片
2012-11-02 08:30 1153最近在做一个天气预报的例子,想在ListView中添加网 ... -
android ListView详解
2012-11-01 09:43 0在android开发中ListView是比较常用的组件, ... -
Android用Application设置全局变量以及使用
2012-10-21 14:08 976如果想在整个应用中使用全局变量,在java中一般是使用静态 ...
相关推荐
总的来说,这个"Android TabHost实例完整工程源码"是一个很好的学习资源,可以帮助开发者掌握如何在Android应用中创建和管理选项卡界面,提升用户体验,同时也为深入学习Android布局设计和Activity管理提供了实践...
1. 创建TabHost实例:通常在布局XML文件中,我们用<tabhost>标签声明一个TabHost,并设置其ID。然后在Activity中通过findViewById()方法获取到这个TabHost实例。 ```java TabHost tabHost = (TabHost) findViewById...
本实例演示了如何在Android应用程序中自定义TabHost,以实现多标签功能。 首先,让我们了解TabHost的基本概念。TabHost是一个容器,它包含一个TabWidget(用于显示标签)和一个FrameLayout(用于显示与标签关联的...
这个"TabHost实例"是专为初学者设计的,旨在帮助他们理解如何使用`TabHost`来构建多标签的应用界面。下面我们将深入探讨`TabHost`的工作原理以及如何在实际项目中使用它。 `TabHost`是Android提供的一个容器,可以...
1. 创建TabHost实例:首先,在布局文件中添加TabHost,并设置其ID为android.R.id.tabhost。然后,在Activity的onCreate()方法中通过findViewById()获取TabHost实例。 ```xml <TabHost android:id="@android:id/...
2. 初始化TabHost:在Activity的onCreate()方法中,获取TabHost实例,并调用setup()方法来初始化它。 ```java TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(); ``` 3. 添加Tab:使用...
在需要使用TabHost的Activity中,通过`TabHostSingleton.getInstance(this).getTabHost()`获取单例的TabHost实例,然后添加Tab和设置Intent。 ```java @Override protected void onCreate(Bundle ...
在Activity的`onCreate()`方法中,通过`findViewById()`获取TabHost实例,并调用`setup()`方法初始化。 ```java TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(); ``` 3. **创建...
`获取到TabHost实例。 2. 设置布局:调用`tabHost.setup();`初始化TabHost。 3. 添加标签:使用`TabSpec tabSpec = tabHost.newTabSpec("tag");`创建一个标签规格,然后设置标签文字、图标和关联的Intent。 4. 添加...
3. 使用TabHost的`newTabSpec()`方法创建TabSpec,并设置标签文本和Intent。 4. 使用TabHost的`addTab()`方法将TabSpec添加到TabHost中。 5. 设置TabHost为主活动,调用`setup()`方法并传入FrameLayout引用。 第二...
在"Tabhost实例"中,我们将会探讨如何在屏幕下方创建并展示`TabHost`。首先,我们需要在布局文件(如`activity_main.xml`)中设置`TabHost`。`TabHost`通常包含两个主要元素:`TabWidget`用于显示tab按钮,`...
首先,我们需要获取到TabHost实例,通常在Activity的onCreate()方法中进行: ```java TabHost tabHost = (TabHost) findViewById(R.id.tab_host); tabHost.setup(); ``` 2. 添加Tab 然后,我们通过TabHost的...
3. 使用工厂模式或Builder模式:这两种设计模式可以帮助我们更优雅地创建和配置TabHost实例,避免了大量的参数传递和复杂的构造函数。 4. 考虑到灵活性:封装时应考虑到不同场景的需求,比如是否支持动态添加标签,...
在你的Activity中,通过`findViewById()`获取TabHost实例,并调用`setup()`方法初始化它。 ```java TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(); ``` 3. **创建Tab** 对于每个Tab...
- **添加Tab**:使用`tabHost.setup()`初始化TabHost,并通过`TabSpec tabSpec = tabHost.newTabSpec("tag")`创建TabSpec,接着设置Tab的标签和内容,最后用`tabHost.addTab(tabSpec)`添加到TabHost中。 - **嵌套...
在Activity的onCreate()方法中,获取TabHost的实例,然后使用setup()方法初始化。这个方法需要传入一个含有FrameLayout的布局ID,这通常是TabHost下的一个FrameLayout。 ```java TabHost tabHost = (TabHost) ...
1. **创建TabHost实例**:首先,在布局文件中声明一个TabHost,并设置其ID为"@android:id/tabhost"。然后在代码中通过`TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);`获取到TabHost实例。 2. **...
`来实例化TabHost,并设置其上下文。 2. **设置布局**:使用`tabHost.setup();`来将TabHost与布局文件关联,这样TabHost就会在其内部显示内容。 3. **添加标签**:通过`TabSpec tabSpec = tabHost.newTabSpec("tag_...
`获取TabHost实例。 2. **设置TabWidget**:TabWidget是TabHost中的标签显示区,通过`tabHost.setup()`方法初始化,它会把TabHost的顶级布局设置为TabWidget和下面的FrameLayout。 3. **添加Tab**:使用`TabSpec`...