Android TabHost两种使用方法

1.第一种方式 继承于TabActivity 这种SDK 4.1以后已经废弃了

package com.halleluja.tab2;

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

public class Tab2DemoActivity extends TabActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        TabHost tabHost = this.getTabHost();
        
        LayoutInflater inflater = LayoutInflater.from(this);
        inflater.inflate(R.layout.main, tabHost.getTabContentView());
        
        tabHost.addTab(tabHost.newTabSpec("a").setIndicator("AA").setContent(R.id.tv1));
        tabHost.addTab(tabHost.newTabSpec("b").setIndicator("BB").setContent(R.id.tv2));
        
        tabHost.setOnTabChangedListener(listener);
    }
   
    OnTabChangeListener listener = new OnTabChangeListener() {

                public void onTabChanged(String tabId) {
                        System.out.println(tabId);
                }
           
    };
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/lay"
    >
<TextView  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="11111111111"
    android:id="@+id/tv1"
    />
    <TextView  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="222222222"
    android:id="@+id/tv2"
    />
</LinearLayout>

第二种方法:使用布局文件

package com.halleluja.tab;

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

public class TabDemoActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        TabHost tabHost = (TabHost)findViewById(R.id.tabhost);
        tabHost.setup();
        
        LayoutInflater inflater_tab1 = LayoutInflater.from(this);   
        inflater_tab1.inflate(R.layout.a, tabHost.getTabContentView());  
        inflater_tab1.inflate(R.layout.b, tabHost.getTabContentView());

        tabHost.addTab(tabHost.newTabSpec("aa").setIndicator("111").setContent(R.id.lay1));
        tabHost.addTab(tabHost.newTabSpec("bb").setIndicator("222").setContent(R.id.lay2));
    }
}

package com.halleluja.tab;

import android.app.TabActivity;
import android.os.Bundle;

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

package com.halleluja.tab;

import android.app.TabActivity;
import android.os.Bundle;

public class BActivity extends TabActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.b);
    }
} 

main.xml

<?xml version="1.0" encoding="utf-8"?>  
<TabHost  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+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"  
        android:layout_weight="0" />  
        
        <FrameLayout
        android:id="@android:id/tabcontent"  
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"  
        android:padding="5dp"
        android:layout_weight="1" />  
        
        
    </LinearLayout>  
</TabHost>  

a.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/lay1"
    >
   
    <TextView  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="aaaaaaaaaaaaaa"
    />
</LinearLayout>

b.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/lay2"
    >
   
    <TextView  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="bbbbbbbbbbbbb"
    />
</LinearLayout>

如果想要把标签放在底部只要将main.xml修改成:

<?xml version="1.0" encoding="utf-8"?>  
<TabHost  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+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">  
        <FrameLayout
        android:id="@android:id/tabcontent"  
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"  
        android:padding="5dp"
        android:layout_weight="1" />  
        
        <TabWidget
        android:id="@android:id/tabs"  
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"  
        android:layout_weight="0" />  
        
    </LinearLayout>  
</TabHost>
赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏