Android之TabHost的几种使用方法

   1,Activity要继承TabActivity,使用LayoutInflater方式来初始化布局文件。

    main.xml

   

<?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">
	<LinearLayout android:id="@+id/tab01"
		android:layout_width="fill_parent" android:layout_height="fill_parent"
		android:gravity="center_horizontal" android:orientation="vertical">
		<TextView android:id="@+id/tv01" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:textSize="24dip"
			android:text="这是选项卡一,你课可以在这里添加你要显示的控件" />

	</LinearLayout>

	<LinearLayout android:id="@+id/tab02"
		android:layout_width="fill_parent" android:layout_height="fill_parent"
		android:gravity="center_horizontal" android:orientation="vertical">
		<TextView android:id="@+id/tv02" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:textSize="24dip"
			android:text="这是选项卡二,你课可以在这里添加你要显示的控件" />
	</LinearLayout>
	
	<LinearLayout android:id="@+id/tab03"
		android:layout_width="fill_parent" android:layout_height="fill_parent"
		android:gravity="center_horizontal" android:orientation="vertical">
		<TextView android:id="@+id/tv03" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:textSize="24dip"
			android:text="这是选项卡三,你课可以在这里添加你要显示的控件" />
	</LinearLayout>

</LinearLayout>


 

 TabHostActivity.java

package com.test;

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

public class TabHostActivity extends TabActivity {
    /** Called when the activity is first created. */
	TabHost myTabHost ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     //   setContentView(R.layout.main);

        myTabHost=this.getTabHost();
        LayoutInflater.from(this).inflate(R.layout.main, myTabHost.getTabContentView(), true);
        
        myTabHost.addTab(myTabHost.newTabSpec("选项卡一").setIndicator("选项卡一", 
        getResources().getDrawable(R.drawable.icon)).setContent(R.id.tab01));

        myTabHost.addTab(myTabHost.newTabSpec("选项卡二").setIndicator("选项卡二", 
        getResources().getDrawable(R.drawable.icon)).setContent(R.id.tab02));
        
        myTabHost.addTab(myTabHost.newTabSpec("选项卡三").setIndicator("选项卡三", 
        getResources().getDrawable(R.drawable.icon)).setContent(R.id.tab03));

    }
}


 

 

2,同样继承TabActivity,但是选项卡的内容则是跳转到不同的activity。

mian.xml

<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"
		android:padding="5dp">
		<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"
			android:padding="5dp" />
	</LinearLayout>
</TabHost> 

注意:tabhost中的id,tabwidget的id以及framelayout的id

TabHostActivity.java

package com.test;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

public class TabHostActivity extends TabActivity {
    /** Called when the activity is first created. */
	TabHost myTabHost ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

		//得到TabHost对象,正对TabActivity的操作通常都有这个对象完成
		TabHost tabHost = getTabHost();
		//生成一个Intent对象,该对象指向一个Activity
		Intent activity1Intent = new Intent();
		activity1Intent.setClass(this, Activity1.class);
		//生成一个TabSpec对象,这个对象代表了一个页
		TabHost.TabSpec activity1Spec = tabHost.newTabSpec("选项卡一");
		Resources res = getResources();
		//设置该页的indicator , 这里使用了系统自动的图片资源
		activity1Spec.setIndicator("选项卡一", res.getDrawable(android.R.drawable.stat_sys_download));
		//设置该页的内容
		activity1Spec.setContent(activity1Intent);
		//将设置好的TabSpec对象添加到TabHost当中
		tabHost.addTab(activity1Spec);
		
		Intent activity2Intent = new Intent();
		activity2Intent.setClass(this, Activity2.class);
		TabHost.TabSpec activity2Spec = tabHost.newTabSpec("选项卡二");
		activity2Spec.setIndicator("选项卡二", res.getDrawable(android.R.drawable.stat_sys_upload));
		activity2Spec.setContent(activity2Intent);
		tabHost.addTab(activity2Spec);

    }
}

注意:选项卡中的两个activity的代码就不贴上了。


 

3,不继承TabActivity。

main.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 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 android:id="@android:id/tabs" 
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content">
            </TabWidget>
         
             <FrameLayout android:id="@android:id/tabcontent"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content">
                    <TextView android:id="@+id/view1"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent" android:text="这里是选项卡一"/>
                    <TextView android:id="@+id/view2"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent" android:text="这里是选项卡二"/>
                    <TextView android:id="@+id/view3"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent" android:text="这里是选项卡三"/>
             </FrameLayout>
         
         </LinearLayout>
    </TabHost>
</LinearLayout>


TabHostActivity.java

package com.test;

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

public class TabHostActivity extends Activity {
    /** Called when the activity is first created. */
	TabHost myTabHost ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
        tabHost.setup();
        tabHost.addTab(tabHost
                .newTabSpec("选项二")
                .setIndicator("选项二",
                        getResources().getDrawable(R.drawable.icon))
                .setContent(R.id.view1));

        tabHost.addTab(tabHost
                .newTabSpec("选项二")
                .setIndicator("选项二",
                        getResources().getDrawable(R.drawable.icon))
                .setContent(R.id.view2));

        tabHost.addTab(tabHost
                .newTabSpec("选项三")
                .setIndicator("选项三",
                        getResources().getDrawable(R.drawable.icon))
                .setContent(R.id.view3));
    }
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TabHostAndroid 中的一个容器,用于实现多个标签页之间的切换。下面是 TabHost使用方法详解: 1. 在 XML 布局文件中添加 TabHost 控件: ```xml <TabHost android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout> </TabHost> ``` 2. 在 Activity 中初始化 TabHost: ```java TabHost tabHost = findViewById(android.R.id.tabhost); tabHost.setup(); ``` 3. 添加标签页: ```java TabHost.TabSpec tabSpec1 = tabHost.newTabSpec("Tab1"); tabSpec1.setIndicator("Tab 1"); tabSpec1.setContent(R.id.tab1_content); TabHost.TabSpec tabSpec2 = tabHost.newTabSpec("Tab2"); tabSpec2.setIndicator("Tab 2"); tabSpec2.setContent(R.id.tab2_content); tabHost.addTab(tabSpec1); tabHost.addTab(tabSpec2); ``` 4. 创建标签页的布局: 在布局文件中创建用于显示每个标签页内容的 View,例如: ```xml <LinearLayout android:id="@+id/tab1_content" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- 在这里添加 Tab 1 的内容 --> </LinearLayout> <LinearLayout android:id="@+id/tab2_content" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- 在这里添加 Tab 2 的内容 --> </LinearLayout> ``` 以上就是 TabHost 的基本使用方法。通过添加不同的标签页和对应的布局,可以实现多个标签页之间的切换和显示不同的内容。你可以根据自己的需求来定制标签页的样式和内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值