android 开发tab,跟我学android应用开发 之 如何创建选项卡(Tab)

在很多应用中都有选项卡,如下:

0818b9ca8b590ca3270a3433284dd417.png

源码实现:

package com.alex.app.testtab;

import android.app.TabActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.widget.TabHost;

public class MainActivity extends TabActivity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TabHost th = getTabHost();

//inflate对应的layout

LayoutInflater.from(this).inflate(R.layout.main, th.getTabContentView(), true);

//添加三个选项卡

th.addTab(th.newTabSpec("all").setIndicator("all calls").setContent(R.id.tv01));

th.addTab(th.newTabSpec("ok").setIndicator("answered").setContent(R.id.tv02));

th.addTab(th.newTabSpec("not").setIndicator("not answered").setContent(R.id.tv03));

}

}布局文件:

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/framelayout01"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:id="@+id/th01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/tv01"

android:text="所有通话记录"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/tv02"

android:text="已接来电"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/tv03"

android:text="未接来电"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

另外还可以使用TabHost.TabContentFactory来按需生成选项卡的内容:

源码

package com.alex.app.testtab;

import java.util.ArrayList;

import java.util.List;

import android.app.TabActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.TabHost;

import android.widget.TabHost.TabContentFactory;

public class MainActivity extends TabActivity implements TabContentFactory{

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TabHost th = getTabHost();

//inflate对应的layout

LayoutInflater.from(this).inflate(R.layout.main, th.getTabContentView(), true);

//添加三个选项卡

th.addTab(th.newTabSpec("all").setIndicator("all calls").setContent(this));

th.addTab(th.newTabSpec("ok").setIndicator("answered").setContent(this));

th.addTab(th.newTabSpec("not").setIndicator("not answered").setContent(this));

}

@Override

public View createTabContent(String tag) {

ListView lv = new ListView(this);

List list = new ArrayList();

list.add(tag);

if(tag.equals("all"))

{

list.add("daddy");

list.add("mummy");

list.add("tommy");

}

else if(tag.equals("ok"))

{

list.add("daddy");

list.add("mummy");

}

else if(tag.equals("not"))

{

list.add("tommy");

}

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_checked, list);

lv.setAdapter(adapter);

return lv;

}

}

布局文件与前面的相同。

显示效果:

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值