加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

概括Android中TabActivity 的使用方法

发布时间:2021-11-25 18:07:40 所属栏目:PHP教程 来源:互联网
导读:如果希望在Activity中出现多个Tab可以点击,并且点击每个Tab之后跳转到相应的Activity,可以使用TabActivity类。以下演示一个简单的范例。 首先要定义一个继承TabActivity的类,这里我们定义MainActivity,并且使其作为应用程序的入口。其代码为 package com.m
如果希望在Activity中出现多个Tab可以点击,并且点击每个Tab之后跳转到相应的Activity,可以使用TabActivity类。以下演示一个简单的范例。
 
首先要定义一个继承TabActivity的类,这里我们定义MainActivity,并且使其作为应用程序的入口。其代码为
 
package com.myAndroid.tabtest;  
  
import android.app.TabActivity;  
import android.content.Intent;  
import android.os.Bundle;  
import android.widget.TabHost;  
import android.widget.TabHost.TabSpec;  
  
public class MainActivity extends TabActivity {  
    private TabHost m_tabHost;  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.tabs);  
          
        //getTabHost返回的TabHost用于装载tabs  
        m_tabHost = getTabHost();  
          
        //add tabs,这里用于添加具体的Tabs,并用Tab触发相应的Activity  
        addOneTab();  
        addTwoTab();  
        addThreeTab();  
        addFourTab();  
    }  
      
    public void addOneTab(){  
        Intent intent = new Intent();  
        intent.setClass(MainActivity.this, OneActivity.class);  
          
        TabSpec spec = m_tabHost.newTabSpec("One");  
        spec.setIndicator(getString(R.string.one), null);  
        spec.setContent(intent);          
        m_tabHost.addTab(spec);  
    }  
      
    public void addTwoTab(){  
        Intent intent = new Intent();  
        intent.setClass(MainActivity.this, TwoActivity.class);  
          
        TabSpec spec = m_tabHost.newTabSpec("Two");  
        spec.setIndicator(getString(R.string.two), null);  
        spec.setContent(intent);          
        m_tabHost.addTab(spec);  
    }  
    public void addThreeTab(){  
        Intent intent = new Intent();  
        intent.setClass(MainActivity.this, ThreeActivity.class);  
          
        TabSpec spec = m_tabHost.newTabSpec("Three");  
        spec.setIndicator(getString(R.string.three), null);  
        spec.setContent(intent);          
        m_tabHost.addTab(spec);  
    }  
    public void addFourTab(){  
        Intent intent = new Intent();  
        intent.setClass(MainActivity.this, FourActivity.class);  
          
        TabSpec spec = m_tabHost.newTabSpec("Four");  
        spec.setIndicator(getString(R.string.four), null);  
        spec.setContent(intent);          
        m_tabHost.addTab(spec);  
    }  
}  
可以看到在MainActivity中,我们使用getTabHost()返回一个TabHost,而TabHost正是用来添加Tabs的。这里我们添加了4个Tabs,使用4个函数完成:addOneTab(),addTwoTab(),addThreeTab(),addFourTab(). 在这4个函数中我们使用TabSpec来描述每个的Tab,并且设置Intent,完成点击该Tab时跳转到相应的Activity的功能。
 
当然,这个应用还有一个关键点,就是这里的布局tabs.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"  
            android:paddingLeft="1dip"  
            android:paddingRight="1dip"  
            android:paddingTop="4dip"  
        />  
          
        <FrameLayout android:id="@android:id/tabcontent"  
            android:layout_width="fill_parent"  
            android:layout_height="0dip"  
            android:layout_weight="1"  
        />       
    </LinearLayout>  
</TabHost>  
注意在tabs.xml中,定义TabHost标签,并且其中有一个TabWidget标签是装载整个Tabs的,其id必须为android:id/tabs
 
完成这些工作之后,接下来的任务就是定义前面的几个Activity,OneActivity,TwoActivity,ThreeActivity,FourActivity.这些Activity由大家根据自己的功能设定。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读