`
AaronGo
  • 浏览: 28837 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

TabHost的创建

阅读更多

1.直接继承TabActivity,函数getTabHost拿到TabActivity里面的TabHost对象

 

package com.example.tabtest;

import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.widget.TabHost;

public class MainActivity extends TabActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		TabHost host = getTabHost();
		
		//from(this)从这个TabActivity获取LayoutInflater
		LayoutInflater.from(this).inflate(
				R.layout.host,       //host.xml存放Tab布局
				host.getTabContentView(), //通过TabHost获取存放Tab标签页内容的FrameLayout
				true);
		host.setBackgroundColor(Color.WHITE);
		
		host.addTab(host.newTabSpec("One")// make a new Tab
				.setIndicator("", getResources().getDrawable(R.drawable.gimp))
				// set the Title and Icon
				.setContent(R.id.blue));

          host.addTab(host.newTabSpec("Two")// make a new Tab
				.setIndicator("", getResources().getDrawable(R.drawable.mumule))
				// set the Title and Icon
				.setContent(R.id.red));

        host.addTab(host.newTabSpec("Three")// make a new Tab
				.setIndicator("", getResources().getDrawable(R.drawable.notepad))
				// set the Title and Icon
				.setContent(R.id.green));
		
		//setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

 2.如果不继承TabActivity,则TabHost需在xml文件中定义

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/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"> 
         
        <LinearLayout  
        	android: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"/>  

            <!-- 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>  

 

package com.example.tabtest2;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TabHost;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		TabHost host = (TabHost)findViewById(R.id.tabhost);  
		//没有继承TabActivity时,通过该种方法加载启动tabHost   
		host.setup();  
		host.addTab(host.newTabSpec("tab1")
				.setIndicator("",  
						getResources().getDrawable(R.drawable.win))
				.setContent(R.id.view1));  

		host.addTab(host.newTabSpec("tab3")
				.setIndicator("", getResources().getDrawable(R.drawable.draw))  
				.setContent(R.id.view3));  

		host.addTab(host.newTabSpec("tab2")
				.setIndicator("", getResources().getDrawable(R.drawable.lose))  
				.setContent(R.id.view2));  
	}  
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

 

  • 大小: 26.8 KB
分享到:
评论

相关推荐

    TabHost的使用方法

    通过上述步骤,你已经成功地使用TabHost创建了一个基本的选项卡式界面。在实际应用中,你可能需要根据具体需求调整和扩展这个基础结构,例如使用Fragment替代Activity,或者实现更复杂的交互逻辑。记得在项目中导入...

    TabHost,ViewPager,ListView综合demo

    例如,你可以使用TabHost创建一个顶部的选项卡栏,每个选项卡下面嵌套一个ViewPager,每个ViewPager再显示一个由ListView构成的页面。这样,用户可以通过选项卡切换不同类别,每个类别下又可以通过滑动查看多条...

    Android TabHost UI设计 菜单完美显示

    本教程将专注于使用TabHost创建一个美观且功能完善的菜单系统。TabHost是Android SDK提供的一种组件,用于实现多标签页的界面布局,使得用户可以在不同的功能模块之间轻松切换。 **一、TabHost简介** TabHost是...

    仿微信例子,使用TabHost实现底部tab,显示未读信息条数

    通过这个"WeiXinTabDemo"项目,你可以深入理解如何使用TabHost创建多标签页的界面,并实现类似微信那样实时显示未读信息的功能。这是一个很好的起点,对于初学者来说,能够帮助他们掌握Android基础组件的使用,为...

    Android代码-TabHost内嵌ActivityGroup界面管理源码.zip

    综上所述,"TabHost内嵌ActivityGroup界面管理源码.zip"这个压缩包文件可能包含了一个使用旧版Android界面管理技术的示例项目,展示了如何利用TabHost创建带有标签的导航,以及如何使用ActivityGroup在单个Activity...

    Android应用源码之嵌套TabHost示例.zip

    3. **设置内部TabHost的布局**:为内部TabHost创建一个新的布局文件,包含其Tab标签和内容视图。使用`TabHost.setup()`方法初始化内部TabHost,并设置其内容视图。 4. **创建内部TabSpec**:像创建主TabHost一样,...

    TabHost选项卡功能

    以下是一个简单的示例代码,展示如何使用TabHost创建两个选项卡,每个选项卡对应一个Activity: ```java TabHost tabHost = (TabHost) findViewById(R.id.tab_host); tabHost.setup(); TabSpec spec1 = tabHost....

    android中tabhost各种实例及用法

    在开发类似新浪微博客户端的应用时,我们可以利用TabHost创建多个标签页,分别展示“首页”、“消息”、“发现”等不同功能。每个标签页对应的Activity可以负责加载相应的内容,例如: - 首页Activity:显示微博...

    tabhost效果

    `TabHost`是Android开发中的一个关键组件,主要用于创建具有标签页导航的用户界面。在Android早期版本中,它是实现多视图切换的常用方式,每个标签页对应一个不同的活动(Activity)或帧布局(FrameLayout)。让我们...

    Android 嵌套TabHost示例.zip

    1. **设置主TabHost**:在主TabHost中,开发者首先需要通过`setup()`方法初始化TabHost,然后为每个子TabHost创建TabSpec。 2. **创建子TabHost**:对于每个子TabHost,也需要同样的初始化过程,包括设置TabWidget...

    标题带图标和文字的TabHost

    总结一下,使用TabHost创建带有图标和文字的标题,你需要: 1. 在XML布局文件中定义TabHost及其组件。 2. 初始化TabHost并调用`setup()`方法。 3. 使用`newTabSpec()`创建标签,设置标签的显示内容,可以包含图标和...

    TabHost小Demo

    `TabHost`是Android中创建多标签界面的利器,虽然现在推荐使用`Fragment`配合`TabLayout`(来自Android Design Support Library)来实现更现代的导航效果,但在某些场景下,`TabHost`仍然是一个实用的选择。...

    Android 控件之TabHost Tab页

    下面通过一个具体的例子来展示如何使用 TabHost 创建一个多标签页面。 ##### 1. 布局文件 布局文件使用 FrameLayout 来作为 TabHost 的内容展示区。在这个例子中,我们创建了三个 TextView,分别代表三个不同的 ...

    Android源代码:选项卡tabhostdemo

    这个项目“Android源代码:选项卡tabhostdemo”不仅展示了如何使用TabHost创建选项卡,还可能涉及到使用Adapter(如TabPagerAdapter)来管理和创建多个Fragment,以提高代码的可复用性和维护性。通过阅读和学习这个...

    Android应用源码之高仿网易客户端UI(tabhost).zip

    总之,"Android应用源码之高仿网易客户端UI(tabhost)"为Android开发者提供了一个生动的实战教学,通过实践这个项目,开发者可以掌握如何使用TabHost创建多标签界面,并从中了解到Android应用设计的基本原则和最佳...

    tabhost 练习

    通过这个“tabhost练习”,你可以学习到如何使用TabHost创建多标签界面,以及如何处理标签切换事件。同时,这也是一个很好的机会去探索Android UI组件的底层工作原理,为今后使用更高级的组件打下基础。如果你想要...

    Android 使用Gallery_tabhost实现标签效果图源码.zip

    总的来说,这个项目为开发者提供了一个实践Android UI设计和交互的实例,特别是对于那些想要学习如何使用Gallery和TabHost创建复杂、互动性强的界面的开发者来说,这是一个非常有价值的资源。通过分析和理解这个源码...

    安卓开发-高仿网易客户端UI(tabhost).zip

    在安卓应用开发中,创建一个用户界面(UI)是至关重要的,因为它直接影响到用户的使用体验。...通过学习并实践这些内容,开发者可以掌握如何利用TabHost创建类似网易新闻客户端的多标签界面,提升应用的用户体验。

    Android 嵌套TabHost示例

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

Global site tag (gtag.js) - Google Analytics