コード内のタブの内容の追加


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;
	}

}