android TabHost的一种用RadioButton来实现的切换

Layout:

<?xml version="1.0" encoding="UTF-8"?>
<TabHost 
	xmlns:android="http://schemas.android.com/apk/res/android" 
	android:id="@android: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">
        <FrameLayout 
        	android:id="@android:id/tabcontent"
        	android:layout_width="fill_parent" 
        	android:layout_height="0dip"
            android:layout_weight="1"/>
        <TabWidget
        	android:id="@android:id/tabs" 
        	android:layout_width="fill_parent"
        	android:layout_height="wrap_content" 
        	android:layout_weight="0"
        	android:visibility="gone" />
        <RadioGroup android:orientation="horizontal"
        	android:id="@+id/main_radio"
			android:layout_width="fill_parent" 
			android:layout_height="wrap_content"
			android:layout_gravity="bottom" 
			android:gravity="center_vertical"
			android:background="@drawable/maintab_toolbar_bg"
			>
			<RadioButton android:drawableTop="@drawable/icon_1_n" 
				android:tag="radio_button0"
				android:layout_marginTop="2dp"
				android:text="@string/main_home"
				style="@style/main_tab_bottom" />
			<RadioButton android:drawableTop="@drawable/icon_2_n" 
				android:tag="radio_button1"
				android:layout_marginTop="2dp"
				android:text="@string/main_news"
				style="@style/main_tab_bottom" />
			<RadioButton android:drawableTop="@drawable/icon_3_n" 
				android:tag="radio_button2"
				android:layout_marginTop="2dp"
				android:text="@string/main_my_info"
				style="@style/main_tab_bottom" />
			<RadioButton android:drawableTop="@drawable/icon_4_n" 
				android:tag="radio_button3"
				android:layout_marginTop="2dp"
				android:text="@string/menu_search"
				style="@style/main_tab_bottom" />
			<RadioButton android:drawableTop="@drawable/icon_5_n"
				android:tag="radio_button4"
				android:layout_marginTop="2dp"
				android:text="@string/more"
				style="@style/main_tab_bottom" />
		</RadioGroup>
	</LinearLayout>
</TabHost>

这样来写activity:

public class WeiboMainTabActivity extends TabActivity implements OnCheckedChangeListener{

	
	Intent animationTest;
    Intent DetailShopActivity;
	Intent EditTextExample;
	Intent MainActivity;
	private RadioButton[] mRadioButtons;
	private TabHost mHost;
	boolean mTabSetup;
	
	public static int mMode = 0;
	public static final String MODE_KEY = "MODE_KEY";
	public static final int MODE_HOME = 0;
	/*
	 * public static final int MODE_MESSAGE = 1; public static final int
	 * MODE_COMMENT = 2; public static final int MODE_AT = 3;
	 */
	public static final int MODE_MYBLOG = 4;
	public static final int MODE_FAVORITE = 5;

	// public static final int MODE_SEARCH = 9;
	public static final int MODE_USER = 10;
	public static final int MODE_TOPIC = 11;

	private static final int OEM_FACTORY = 0;
	private static final int OEM_SONY_ERICSSON = 1;

	public static final int SWITCHUSER = 0;
	private static final int DIALOG_ALERT_ATTENTION_OFFICAL = 100;
	public static final int MODE_DEFAULT = -1;
	public static final int MODE_MBLOG = 0;
	public static final int MODE_USERINFO = 1;
	public static final int MODE_SEARCH = 2;
	public static final int MODE_MORE = 3;
	public static final int MODE_COMMENT = 4;
	public static final int MODE_AT = 5;
	public static final int MODE_MESSAGE = 6;
	public static final int MODE_GRASSROOT = 7;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.maintabs);
		animationTest = new Intent(this,AnimationTest.class);
		DetailShopActivity = new Intent(this,DetailShopActivity.class);
		EditTextExample = new Intent(this,EditTextExample.class);
		MainActivity = new Intent(this,MainActivity.class);
		mHost = getTabHost();
		initRadios();
		
		setupIntent();
	}
	
	private void setupIntent() {
		mHost.clearAllTabs();
		mHost.addTab(mHost
				.newTabSpec("mblog_tab")
				.setIndicator(getString(R.string.main_home),
						getResources().getDrawable(R.drawable.icon_1))
				.setContent(animationTest));
		mHost.addTab(mHost
				.newTabSpec("message_tab")
				.setIndicator(getString(R.string.main_message),
						getResources().getDrawable(R.drawable.icon_2))
				.setContent(DetailShopActivity));
		mHost.addTab(mHost
				.newTabSpec("userinfo_tab")
				.setIndicator(getString(R.string.user_info),
						getResources().getDrawable(R.drawable.icon_3))
				.setContent(EditTextExample));
		mHost.addTab(mHost
				.newTabSpec("search_tab")
				.setIndicator(getString(R.string.menu_search),
						getResources().getDrawable(R.drawable.icon_4))
				.setContent(DetailShopActivity));
		mHost.addTab(mHost
				.newTabSpec("more_tab")
				.setIndicator(getString(R.string.more),
						getResources().getDrawable(R.drawable.main_more_icon))
				.setContent(animationTest));
		// mHost.addTab(mHost.newTabSpec("userinfo_tab").setIndicator(getString(R.string.menu_search),
		// getResources().getDrawable(R.drawable.icon_5)).setContent(mSearchIntent));
		mTabSetup = true;
	}
	
	private void initRadios() {
		RadioGroup group = (RadioGroup) findViewById(R.id.main_radio);
		final int RADIO_COUNT = 5;
		mRadioButtons = new RadioButton[RADIO_COUNT];
		for (int i = 0; i < RADIO_COUNT; i++) {
			mRadioButtons[i] = (RadioButton) group
					.findViewWithTag("radio_button" + i);
			mRadioButtons[i].setOnCheckedChangeListener(this);
		}
	}

	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		if (isChecked && mHost != null) {
			if (buttonView == mRadioButtons[0]) {
				mMode = MODE_MBLOG;
				mHost.setCurrentTabByTag("mblog_tab");
			}
			else if (buttonView == mRadioButtons[1]) {
				if (!(mMode == MODE_AT || mMode == MODE_COMMENT || mMode == MODE_MESSAGE)) {
					mMode = MODE_AT;
				}
				mHost.setCurrentTabByTag("message_tab");
			}
			else if (buttonView == mRadioButtons[2]) {
				mMode = MODE_USERINFO;
				mHost.setCurrentTabByTag("userinfo_tab");
			}
			else if (buttonView == mRadioButtons[3]) {
				mMode = MODE_SEARCH;
				mHost.setCurrentTabByTag("search_tab");
			}
			else if (buttonView == mRadioButtons[4]) {
				mMode = MODE_MORE;
				mHost.setCurrentTabByTag("more_tab");
			}
		}
	}

	
}

效果图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值