在代码中为选项卡添加内容

android中进度条和选项卡的使用一文中介绍了选项卡的简单使用,该文中使用XML文件为Tab添加内容,下面采用另一种方式,实现TabHost的TabContentFactory接口,通过重写createTabContent()方法来实现在代码中动态地添加选项卡的内容,代码如下:

Activity:

package com.home;

import java.util.ArrayList;
import java.util.List;

import android.app.TabActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.TabHost.TabContentFactory;

public class TabTestActivity extends TabActivity implements TabContentFactory {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 获得TabHost对象
		TabHost th = getTabHost();
		// 为Tab添加标签和显示内容
		th.addTab(th.newTabSpec("all").setIndicator("所有通话记录").setContent(this));
		th.addTab(th.newTabSpec("ok").setIndicator("已接来电").setContent(this));
		th.addTab(th.newTabSpec("cancel").setIndicator("未接来电").setContent(this));
	}

	@Override
	public View createTabContent(String tag) {
		// 实例化列表视图ListView
		ListView lv = new ListView(this);
		List<String> list = new ArrayList<String>();
		// 在list中添加显示内容
		if (tag.equals("all")) {
			list.add("张三");
			list.add("李四");
			list.add("王五");
			list.add("赵六");
		} else if (tag.equals("ok")) {
			list.add("张三");
			list.add("李四");
		} else {
			list.add("王五");
			list.add("赵六");
		}
		ArrayAdapter adapter = new ArrayAdapter(this,
				android.R.layout.simple_list_item_checked, list);
		// 为ListView设置适配器
		lv.setAdapter(adapter);
		return lv;
	}

}


 

你可能感兴趣的:(android,选项卡)