根据网上资料,写了一个通用的类似模板的类MyTabActivity,实现一个图标Icon+文字Label的TabActivity,应用的类只要把Icon和Label加上去,对应每个Activity,就可以建立一个TabActivity了。
1. 模板类MyTabActivity.java(可以重用)
package amao.callbye;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabSpec;
import android.widget.TextView;
/**
* Abstract TabActivity with icon+text TabSpec support for each Activity
* Sub class need set "layout" and "selectDrawable"(tab selected background image) in constructor
* And implement getMyTabList() to add tab configuration
*
* @author Anderson Mao, 2012-05-01
*/
public abstract class MyTabActivity extends TabActivity {
private static String TAG_NAME = MyTabActivity.class.getSimpleName();
private TabHost tabHost;
private int tabLayout;
private int selectDrawable;
private Drawable selectBackground;
private int textColor = Color.GRAY;
private int selectTextColor = Color.LTGRAY;
private Map<String, TabView> tabViewMap = new HashMap<String, TabView>();