西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页编程开发Android → Android 手机电话薄TabWidget多标签切换卡效果

Android 手机电话薄TabWidget多标签切换卡效果

相关软件相关文章发表评论 来源:西西整理时间:2013/4/17 22:43:47字体大小:A-A+

作者:西西点击:0次评论:2次标签: 标签切换

  • 类型:文件处理大小:209KB语言:中文 评分:7.0
  • 标签:
立即下载

TabWidget类似于Android 中查看电话薄的界面,通过多个标签切换显示不同内容。要实现这一效果,首先要了解TabHost,它是一个用来存放多个Tab标签的容器。每一个Tab都可以对应自己的布局,比如,电话薄中的Tab布局就是一个List的线性布局了。 
要使用TabHost,首先需要通过getTabHost方法来获取TabHost的对象,然后通过addTab方法来向TabHost中添加 Tab。当然每个Tab在切换时都会产生一个事件,要捕捉这个事件需要设置TabActivity的事件监听 setOnTabChangedListener。

1、布局文件

<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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TabWidget
      android:id="@android:id/tabs"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" />

    <FrameLayout
      android:id="@android:id/tabcontent"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >

      <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="Linux"
        android:textColor="#FF0000" />

      <TextView
        android:id="@+id/textview2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="MAC"
        android:textColor="#385E0F" />

      <TextView
        android:id="@+id/textview3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="Windows"
        android:textColor="#1E90FF" />
    </FrameLayout>
  </LinearLayout>

</TabHost>

2、修改MainActivity,注意是继承自TabActivity

public class MainActivity extends TabActivity {

	private TabHost tabHost;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		tabHost = getTabHost();

		addTab();// 添加标签
		// 设置TabHost背景颜色
		tabHost.setBackgroundColor(Color.argb(150, 20, 80, 150));
		// 设置TabHost背景图片资源
		tabHost.setBackgroundResource(R.drawable.ic_launcher);
		// 设置当前显示哪一个标签 我的理解就是当你第一次启动程序默认显示那个标签 这里是指定的选项卡的ID从0开始
		tabHost.setCurrentTab(0);
		// 标签切换事件处理,setOnTabChangedListener 注意是标签切换事件不是点击事件,而是从一个标签切换到另外一个标签会触发的事件
		tabHost.setOnTabChangedListener(new OnTabChangeListener() {
			@Override
			public void onTabChanged(String tabId) {
				AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
				Dialog dia;
				builder.setTitle("提示");
				builder.setMessage("当前选中了" + tabId + "标签");
				builder.setPositiveButton("确定", new OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						dialog.cancel();
					}
				});
				dia = builder.create();
				dia.show();
			}
		});
	}

	// 为TabHost添加标签 新建一个newTabSped(new TabSpec) 设置其标签和图标(setIndicator)、设置内容(setContent)
	// TabSpec是TabHost的内部类 TabHost对象的 newTabSpec()方法返回一个TabSpec对象
	// 源码里边是这么写的 public TabSpec newTabSpec(String tag)
	// { return new TabSpec(tag); }
	private void addTab() {
		tabHost.addTab(tabHost
				.newTabSpec("tab1")
				.setIndicator("TAB1",
						getResources().getDrawable(R.drawable.ic_launcher))// setIndicator()此方法用来设置标签和图表
				.setContent(R.id.textview1));
		// 指定内容为一个TextView --->public TabHost.TabSpec setContent(int viewId) 此方法需要一个 viewId 作为参数
		tabHost.addTab(tabHost
				.newTabSpec("tab2")
				.setIndicator("TAB2",
						getResources().getDrawable(R.drawable.ic_launcher))
				.setContent(R.id.textview2));

		tabHost.addTab(tabHost
				.newTabSpec("tab3")
				.setIndicator("TAB3",
						getResources().getDrawable(R.drawable.ic_launcher))
				.setContent(R.id.textview3));
	}
}

 3、运行程序:如下!

    hosts修复软件
    (60)hosts修复软件
    文件是计算机中一个举足轻重的文件,该文件有一个比较大的特点就是没有扩展名。经常在一些电脑个性技巧以及其他领域方面会用到,西西提供文件修复工具软件下载大全。官方介绍是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的地址建立一个关联数据库,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从文件中寻找对应的地址,一旦找到系统会立即打开对应网页,如果没有找...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(2)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)