Tabhost使用范例

1.MainActivity.java

关键点:

1>MainActivity extends TabActivity implements OnClickListener,OnCheckedChangeListener

2> localTabHost.addTab(buildTabSpec("new", R.string.form_tab_new,
   R.drawable.main_tab_bg_selector, new Intent(this,
   HellowordActivity.class)));
3>mR1 = ((RadioButton) findViewById(R.id.radio_button0));
mR1.setOnCheckedChangeListener(this);

4>

<string name="form_tab_new">最新</string>
    <string name="form_tab_hot">热门</string>
    <string name="form_tab_get">获取积分</string>
    <string name="form_tab_soft">应用</string>

5>

main_tab_bg_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:drawable="@drawable/main_tab_bg" android:state_checked="true" />
</selector>

6>

tab_selector.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" >     <item android:drawable="@drawable/toptab_normal" android:state_checked="false"/>

<item android:drawable="@drawable/toptab_select" android:state_checked="true"/>

</selector>

7>colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
    <color name="white">#FFFFFF</color> <!-- 白色 -->
        <color name="bg">#eeeef4</color>
</resources>

8>toptab_select 、  toptab_normal 、 main_tab_bg

package com.example.tabhostdemo;

import android.os.Bundle;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TabHost;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class MainActivity extends TabActivity implements OnClickListener,OnCheckedChangeListener{

	private Button back;
	private TabHost mTabHost;
	private RadioButton mR1;
	private RadioButton mR2;
	private RadioButton mR3;
	private RadioGroup main_radio;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		getWindow().requestFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		initView();
		setupIntent();
	}

	private void setupIntent() {
		this.mTabHost = getTabHost();
		TabHost localTabHost = this.mTabHost;

		localTabHost.addTab(buildTabSpec("new", R.string.form_tab_new,
				R.drawable.main_tab_bg_selector, new Intent(this,
						HellowordActivity.class)));

		localTabHost.addTab(buildTabSpec("hot", R.string.form_tab_hot,
				R.drawable.main_tab_bg_selector, new Intent(this,
						HellowordActivity2.class)));

		localTabHost.addTab(buildTabSpec("get", R.string.form_tab_get,
				R.drawable.main_tab_bg_selector, new Intent(this,
						HellowordActivity.class)));
	}

	private void initView() {
		mR1 = ((RadioButton) findViewById(R.id.radio_button0));
		mR1.setOnCheckedChangeListener(this);
		this.mR1.setTextColor(Color.RED);
		mR2 = ((RadioButton) findViewById(R.id.radio_button1));
		mR2.setOnCheckedChangeListener(this);
		mR3 = ((RadioButton) findViewById(R.id.radio_button2));
		mR3.setOnCheckedChangeListener(this);
		main_radio = (RadioGroup) findViewById(R.id.main_radio);
		back = (Button) findViewById(R.id.back);
		back.setOnClickListener(this);
	}

	private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon,
			final Intent content) {
		return this.mTabHost
				.newTabSpec(tag)
				.setIndicator(getString(resLabel),
						getResources().getDrawable(resIcon))
						.setContent(content);
	}

	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		if (isChecked) {
			System.out.println("isChecked");

			switch (buttonView.getId()) {
			case R.id.radio_button0:
				this.mTabHost.setCurrentTabByTag("new");
				this.mR1.setTextColor(Color.RED);
				this.mR2.setTextColor(Color.BLACK);
				this.mR3.setTextColor(Color.BLACK);
				break;
			case R.id.radio_button1:
				this.mR1.setTextColor(Color.BLACK);
				this.mR3.setTextColor(Color.BLACK);
				this.mR2.setTextColor(Color.RED);
				this.mTabHost.setCurrentTabByTag("hot");
				break;
			case R.id.radio_button2:
				this.mR1.setTextColor(Color.BLACK);
				this.mR2.setTextColor(Color.BLACK);
				this.mR3.setTextColor(Color.RED);
				this.mTabHost.setCurrentTabByTag("get");
				break;
			// case R.id.radio_button2:
			//
			// mPopupWindow.showAsDropDown(main_radio, 0, 0);

			// break;
			}
		}
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.back:
			finish();
			break;

		default:
			break;
		}
	}

}

2.HellowordActivity.java

HellowordActivity2.java 和 HellowordActivity.java 一样

package com.example.tabhostdemo;

import android.app.Activity;
import android.os.Bundle;

public class HellowordActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_hello);
	}
}

3.

时间: 2024-12-29 11:37:14

Tabhost使用范例的相关文章

FragmentActivity+FragmentTabHost+Fragement替代TabActibvity+TabHost+Activity

自Android3.2之后,TabActibvity被弃用(Deprecated).取而代之的是FragmentActivity.由于Fragment比Activiy更灵活.消耗的资源更小.全然可以满足TabActivity的效果,所以直接替代之.原来的TabActibvity+TabHost+Activity那套还可以用,只是强烈建议改用FragmentActivity+FragmentTabHost+Fragement FragmentTabHost使用方法: 1. 定义FragmentAc

Android乐学成语之TabHost介绍及使用Fragment 替换 TabActivity

TabHost介绍 TabHost组件可以在界面中存放多个选项卡, 很多软件都使用了改组件进行设计; 1. TabHost常用组件 TabWidget : 该组件就是TabHost标签页中上部 或者 下部的按钮, 可以点击按钮切换选项卡; TabSpec : 代表了选项卡界面, 添加一个TabSpec即可添加到TabHost中; -- 创建选项卡 : newTabSpec(String tag), 创建一个选项卡; -- 添加选项卡 : addTab(tabSpec); TabHost的使用请看

Android -- TabHost、Fragment、状态保存、通信

工程结构                                                                                       TabAFm到TabEFm都是Fragment,并且每个Fragment对应一个布局文件. TabAFm.java                                                                             package com.yydcdut.tabho

Android ——TabHost使用

在Android中,通常可以使用切换卡(选项卡)实现切换显示不同页面内容的功能.这一功能可以通过TabHost控件来实现. 下面我们就通过一个简单的实例演示如何使用TabHost控件完成切换卡功能,完成后的运行效果如图1所示. 图1 主页显示效果 可以看出,在该实例中,总共设置了四个TabHost标签,分别为主页.时间.联系人和搜索.在点击这些标签时,便可以完成相应页面内容的显示. 1.界面布局 TabHost是整个Tab的容器,是由TabWidget和FrameLayout 两部分组成的.其中

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

[转]:Delphi XE中泛型数组的使用范例

Delphi XE中泛型数组的使用范例,下面的范例简单的使用了泛型字符串数组,如用 TArray 代替 array of Word, 还可以使用 TArray 类提供的算法(就是少了点). uses Generics.Collections, Generics.Defaults; {测试 TArray 的 Sort 方法} procedure TForm1.Button1Click(Sender: TObject); var arr: TArray<string>; //同 array of

ls命令的20个实用范例

contents ls -l -h -lhS -l --block-size=M -a -d */ -g -G -n --color=never -i -p -r -R -t ls ~ ls --version ls是什么 ls命令用于列出文件和目录.默认上,他会列出当前目录的内容.带上参数后,我们可以用ls做更多的事情.这里是一些在日常操作中使用到的ls用法的示例. 1. 不带参数运行ls 不带参数运行ls会只列出文件或者目录.看不到其他信息输出(译注:有时候你发现无参数的ls命令和这里描述的

嵌入式逻辑分析仪SignalTap II 设计范例

Crazy Bingo :嵌入式逻辑分析仪SignalTap II 设计范例 例程下载地址  http://www.cnblogs.com/crazybingo/archive/2011/07/26/2117262.html

Atitit 图像处理 halcon类库的使用 &#160;范例边缘检测 attilax总结

Atitit 图像处理 halcon类库的使用  范例边缘检测 attilax总结 1.1. 安装halcon11 ..体积大概1g压缩模式1 1.2. Halcon的科技树1 1.3. 启动 "D:\Program Files\MVTec\HALCON-11.0\bin\x86sse2-win32\hdevelop.exe"2 1.4. 编写hdev脚本 用的halcon自己的脚本语言2 1.5. 查找边缘算法3 1.6. 查函数列表与资料3 1.7. 对多语言的支持,以及接口,以及