`

玩转Android---UI篇---TabWidget(切换卡)

阅读更多

Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,首先要知道TabHost,它是一个用来存放多个Tab标签的容器,每一个Tab都可以对应自己的布局,比如,电话本中的Tab布局就是一个线性布局

 

要使用TabHost,首先要通过getTabHost方法获取TabHost的对象,然后通过addTab方法来向TabHost中添加Tab,当然每个Tab在切换时都会产生一个事件,要捕捉这个事件,需要设置TabActivity的事件监听setOnTabChangedListener

 

下面是个小例子:

TabTest.java

package org.hualang.tab;

import android.app.Activity;
import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.Toast;
import android.widget.TabHost.OnTabChangeListener;

public class TabTest extends TabActivity {
    /** Called when the activity is first created. */
	TabHost tabhost;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //取得TabHost对象
        tabhost = getTabHost();
        //为TabHost添加标签
        //新建一个newTabSpec(newTabSpec)
        //设置其标签和图标(setIndicator)
        //设置内容(setContent)
        tabhost.addTab(tabhost.newTabSpec("tab1")
        		.setIndicator("TAB 1",getResources().getDrawable(R.drawable.img1))
        		.setContent(R.id.text1));
        tabhost.addTab(tabhost.newTabSpec("tab2")
                .setIndicator("TAB 2",getResources().getDrawable(R.drawable.img2))
                .setContent(R.id.text2));
        tabhost.addTab(tabhost.newTabSpec("tab3")
                .setIndicator("TAB 3",getResources().getDrawable(R.drawable.img3))
                .setContent(R.id.text3));
        //设置TabHost的背景颜色
        //tabhost.setBackgroundColor(Color.argb(150,22,70,150));
        //设置TabHost的背景图片资源
        tabhost.setBackgroundResource(R.drawable.bg0);
        //设置当前显示哪个标签
        tabhost.setCurrentTab(0);
        //标签切换事件处理,setOnTabChangedListener
        tabhost.setOnTabChangedListener(new OnTabChangeListener()
        {
        	public void onTabChanged(String tabId)
        	{
        		Toast toast=Toast.makeText(getApplicationContext(), "现在是"+tabId+"标签", Toast.LENGTH_SHORT);
        		toast.show();
        	}
        });
        
    }
}

 main.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        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">
            <TextView 
                android:id="@+id/text1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:text="选项卡1" />
            <TextView 
                android:id="@+id/text2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:text="选项卡2" />
            <TextView 
                android:id="@+id/text3"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:text="选项卡3" />
    	</FrameLayout>
    </LinearLayout>
</TabHost>

 运行效果如下:


  • 大小: 59 KB
分享到:
评论
1 楼 xinyuetonghua 2012-07-23  
想请教一个问题,如果是TabHost的切换时三个不同的activit,如上图,如果tab2中有个按钮,点击就进入到另外一个activit,但我需要保留tabhost的切换,也就是说,进入的另外的一个activit替换掉当前的activit,该怎么实现

相关推荐

    Android---UI篇

    •Android---UI篇---TabWidget(切换卡) • •Android---UI篇---LinearLayout(线性布局) • •Android---UI篇---WebView(网络视图) • •Andorid---UI篇---两种进度条(ProgressBar) • •Android---UI篇---...

    Android TabHost TabWidget 切换卡

    但`TabHost`和`TabWidget`仍然是理解Android UI体系结构的基础,对于学习Android开发是很有帮助的。 在`MyTabHost`这个项目中,你可能会看到一个完整的`TabHost`和`TabWidget`的示例实现,包括XML布局文件和对应的...

    Android 控件之切换卡(TabWidget)

    在Android开发中,`TabWidget`是一个非常常用的控件,它允许用户在多个视图间进行切换,通常与`ViewPager`结合使用,实现类似标签页的功能。`TabWidget`是Android早期版本中的一种布局组件,而在现代Android开发中,...

    android 切换卡(TabWidget)

    本篇将深入解析如何在Android项目中使用TabWidget,以及其背后的源码工作原理。 一、TabWidget的基本使用 TabWidget通常与FrameLayout或ViewPager结合使用,实现标签页的切换。首先,在布局文件中添加TabWidget和...

    Android_TabHost_TabWidget选项卡总结

    `TabWidget`显示选项卡,`FrameLayout`(通常命名为`android.R.id.tabspec`)用于显示每个选项卡对应的内容。 - 要使用`TabHost`,首先需要继承`TabActivity`,然后通过`getTabHost()`获取`TabHost`实例。 - 使用`...

    Android切换卡TabWidget用法示例

    本文实例讲述了Android切换卡TabWidget用法。分享给大家供大家参考,具体如下: Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,首先要知道TabHost,它是一个用来存放多个Tab标签的容器...

    qt-tabwidget-标题栏tab颜色设置

    在QT编程中,`QTabWidget` 是一个非常常用的组件,用于展示多个窗口或视图,每个窗口或视图被组织成独立的标签页。在实际应用中,我们经常需要自定义这些标签页的外观,比如改变它们的颜色,以及设置选中时的颜色...

    android tabhost --android UI源码.rar

    这个“android tabhost --android UI源码.rar”压缩包文件很可能是包含了一些示例代码或者详细讲解TabHost使用的源码项目。通过分析和学习这些源码,我们可以深入了解TabHost的工作原理以及如何在实际应用中有效利用...

    TabWidget切换卡demo

    在本教程中,我们将深入探讨如何使用`TabWidget`来构建一个简单的切换卡demo。 首先,让我们了解`TabWidget`的基本用法。在布局XML文件中,你需要添加`TabHost`和`TabWidget`元素。`TabHost`作为容器,它将包含`...

    一网打尽Android-UI

    8. **TabWidget(切换卡)**: TabWidget常与ViewPager结合使用,创建可滑动的标签页布局。每个标签对应一个Fragment,提供多页面内容的切换。 9. **ListView之SampleAdapter(列表)**: ListView是显示大量数据...

    切换卡(TabWidget)

    标题“切换卡(TabWidget)”表明我们将讨论如何利用`TabWidget`来实现标签页式界面。 在Android布局文件中,`TabWidget`是用来放置各个标签的容器,而每个标签则对应一个单独的界面或视图。描述中提到,“使用...

    android tabhost --android UI源码-IT计算机-毕业设计.zip

    总之,这个“android tabhost --android UI源码”项目是学习Android开发中TabHost组件的宝贵资源,对于初次接触Android应用开发的学生来说,是理解和实践Android界面设计的好材料。通过深入研究这个源码,不仅可以...

    customize-tabwidget.zip

    在本文中,我们将深入探讨如何使用Qt库来创建一个仿照谷歌浏览器Tab标签页的定制化TabWidget。这个Demo项目展示了如何实现新旧两种不同风格的谷歌浏览器标签,旨在为用户提供更加直观和舒适的界面体验。Qt是一个跨...

    android tabhost --android UI源码.zip

    在"android tabhost --android UI源码.zip"这个压缩包中,你将找到有关如何实现和自定义TabHost的源代码示例。 1. **TabHost组件**: TabHost是Android提供的一个容器,用于管理多个TabWidget和一个内容显示区域...

    Android - TabHost选项卡示例源码

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以关联到一个不同的活动或视图。这个“Android - TabHost选项卡示例源码”提供了一个实例,帮助开发者更好地理解...

    Android源码——android tabhost --android UI源码.zip

    这个压缩包"Android源码——android tabhost --android UI源码.zip"可能包含了一些示例代码,图片资源以及关于如何使用TabHost的解释。 首先,我们来深入理解TabHost的工作原理。TabHost是一个容器,它管理着多个...

    Android TabWidget切换卡的实现应用

    本文将深入探讨如何在Android应用中实现TabWidget的切换卡功能,以及涉及到的关键组件和技术。 首先,我们需要理解TabHost的角色。TabHost是一个容器,它能容纳多个Tab标签,并管理这些标签与对应的活动或布局之间...

Global site tag (gtag.js) - Google Analytics