Android TabHost(选项卡)

在我们实际应用开发中,经常要用到选项卡,今天给大家介绍选项卡的简单使用

首先看布局文件:activity_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"
    android:background="#ffffff"
    >
    
    <LinearLayout android:id="@+id/listLinearLayout"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="0dp" >
        
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent" 
            android:layout_height="55dip"
        />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:padding="0dp"
        >
        </FrameLayout>    
            
    </LinearLayout>
    
    
</TabHost>

这里的布局文件和以往的不同的是 跟节点是 TabHost

布局文件声明好了之后,创建3个类,MainActivity.java继承TabActivity(而不是Activity),AActivity.java 、 BActivity.java 3个java文件

在AActivity.java和BActivity.java中的代码如下,(这里为了方便,没有创建对应的xml布局文件,而是使用TextVIew)

/**
 * 
 */
package com.zhoucj.messagedemo;

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

/**
 * @author zhoucj
 *
 * 2013-6-23
 */
public class AActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        TextView view=new TextView(this);
        view.setText("这是第一个Activity");
        setContentView(view);
    }
    

}

我看最主要的MainActivity.java

package com.zhoucj.messagedemo;

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

public class MainActivity extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
             TabHost tab=getTabHost();
            Intent intent=new Intent();
            intent.setClass(this,AActivity.class);
            TabHost.TabSpec remoTabSpec=tab.newTabSpec("A");
            Resources res=getResources();
            remoTabSpec.setIndicator("A", res.getDrawable(R.drawable.ic_menu_archive));
            remoTabSpec.setContent(intent);
            tab.addTab(remoTabSpec);
            
            Intent localIntent=new Intent();
            localIntent.setClass(this, BActivity.class);
            TabHost.TabSpec locaTabSpec=tab.newTabSpec("B");
            locaTabSpec.setIndicator("B",res.getDrawable(R.drawable.ic_menu_cc));
            locaTabSpec.setContent(localIntent);
            tab.addTab(locaTabSpec);
        
            //Activity运行是,首先展示那个Activity,下标从0,开始, 第一个Activity使用 0
            // tab.setCurrentTab(1); 
    }

}

运行效果如下

AActivity。java 和BActivity.java中不使用 TextVIew的话,申明各自对应的xml布局文件即可,这里只是简单的声明和使用,

 

小弟也是新手,大神别吐槽。

posted @ 2013-06-23 14:01  最後的輕語  阅读(258)  评论(0编辑  收藏  举报