android学习日记03--常用控件tabSpec/tabHost
常用控件
7、TabSpec和TabHost
比较常用的控件,感觉手机QQ的整体布局就是这个,只不过tab放在底部而已。TabSpec相当于浏览器的分页,而TabHost就相当于分页的集合
TabSpec分页可以相当于一个独立的组件,也可以是一个布局,将每个分页装进TabHost里
Activity extends TabActivity
以前都是 继承android.app.Activity
这里为了获得Activity分页菜单,继承它,显然TabActivity和Activity有同个父类。
创建分页菜单对象,将activity_main装进去
tableHost = this.getTabHost();
LayoutInflater.from(this).inflate(R.layout.activity_main,tableHost.getTabContentView());
通过newTabSpec 来创建分页
ts1 = tableHost.newTabSpec("tab1");
设置名称和背景图
ts2.setIndicator("tab2", getResources().getDrawable(R.drawable.bg));
添加组件
ts2.setContent(R.id.et);
通过addtab加进去
tableHost.addTab(ts1);
tableHost.addTab(ts2);
tableHost.addTab(ts3);
设置监听
tableHost.setOnTabChangedListener(this);
arg0 表示传入的tab名称
@Override
public void onTabChanged(String arg0) {
if (arg0.equals("tab1")) {
Toast.makeText(this, "分页1", Toast.LENGTH_LONG).show();
} else if(arg0.equals("tab2")){
Toast.makeText(this, "分页2", Toast.LENGTH_LONG).show();
}else if(arg0.equals("tab3")){
Toast.makeText(this, "分页3", Toast.LENGTH_LONG).show();
}
}
完整代码和运行效果如下:
package com.example.tabproject; import android.os.Bundle;
import android.app.Activity;
import android.app.TabActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.widget.TabHost;
import android.widget.Toast;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabSpec; public class MainActivity extends TabActivity implements OnTabChangeListener{ private TabSpec ts1,ts2,ts3;
private TabHost tableHost; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); tableHost = this.getTabHost(); LayoutInflater.from(this).inflate(R.layout.activity_main,tableHost.getTabContentView()); ts1 = tableHost.newTabSpec("tab1");
ts1.setIndicator("tab1");
ts1.setContent(R.id.btn); ts2 = tableHost.newTabSpec("tab2");
ts2.setIndicator("tab2", getResources().getDrawable(R.drawable.bg));
ts2.setContent(R.id.et); ts3 = tableHost.newTabSpec("tab3");
ts3.setContent(R.id.layout);
ts3.setIndicator("tab3", getResources().getDrawable(R.drawable.pg2));
ts3.setContent(R.id.et); tableHost.addTab(ts1);
tableHost.addTab(ts2);
tableHost.addTab(ts3); tableHost.setOnTabChangedListener(this); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public void onTabChanged(String arg0) {
// TODO Auto-generated method stub
if (arg0.equals("tab1")) {
Toast.makeText(this, "分页1", Toast.LENGTH_LONG).show();
} else if(arg0.equals("tab2")){
Toast.makeText(this, "分页2", Toast.LENGTH_LONG).show();
}else if(arg0.equals("tab3")){
Toast.makeText(this, "分页3", Toast.LENGTH_LONG).show();
}
} }
关于不同Tab页面的View间如何通信后面再讲。
android学习日记03--常用控件tabSpec/tabHost的更多相关文章
- android学习日记03--常用控件button/imagebutton
常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...
- android学习日记03--常用控件Dialog
常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...
- android学习日记03--常用控件checkbox/radiobutton
常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...
- android学习日记03--常用控件ListView
常用控件 8.ListView 列表视图,比如游戏的排行榜.列表数据可以根据屏幕大小自适应 列表的显示需要三个元素: a.ListVeiw:用来展示列表的View. b.适配器:用来把数据映射到Lis ...
- android学习日记03--常用控件progressbar/seekbar
常用控件 5.progressbar 进度条,比较常用的组件,在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度.一个进度条也 ...
- Android学习笔记_30_常用控件使用
一.状态栏通知(Notification): 如果需要查看消息,可以拖动状态栏到屏幕下方即可查看消息.发送消息的代码如下: public void sendNotice(View v){ int ic ...
- Android布局属性与常用控件
一.Android常用布局属性 1. LinearLayout的特有属性 android:orientation:设置布局排列方式 android:layout_weight:设置所占布局的权重 ...
- Android SDK提供的常用控件Widget “常用控件”“Android原生”
Android提供一个标准的视图工具箱来帮助创建简单的UI界面.通过使用这些控件(必要时,可以对这些控件进行修改). 创建一个简单的.xml文件,从预览窗口可以看到Android SDK提供的原生控件 ...
- Android开发UI之常用控件的使用
1.日期选择控件 DatePickerDialog 代码: btnChooseDate=(Button) findViewById(R.id.btnChooseDate); btnChooseDate ...
随机推荐
- Oracle 数据库表空间碎片查询和整理
dba_free_space 显示的是有free 空间的tablespace ,如果一个tablespace 的free 空间不连续,那每段free空间都会在dba_free_space中存在一条记录 ...
- HDU 5694 BD String 递归暴力
http://blog.csdn.net/angon823/article/details/51484906 #include <cstdio> #include <iostream ...
- 【原】Storm及特点
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- 初识SQL注入
什么是SQL注入(SQL Injection)? SQL注入是网站攻击途径之一,这里引用一下百度百科的解释:“所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串, ...
- bzoj 1058 [ZJOI2007]报表统计(set)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1058 [题意] 一个序列,提供插入,查询相邻最小差值,查询任意最小差值的操作. [思路 ...
- 【暑假】[深入动态规划]UVa 12170 Easy Climb
UVa 12170 Easy Climb 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=24844 思路: 引别人一 ...
- HDU 1029 Ignatius and the Princess IV DP
kuangbin 专题 这题,有很多种解法. 第一种: 直接比较每个数出现次数. #include<iostream> #include<string> #include< ...
- 【转载】/etc/passwd & /etc/shadow 详解
转载自:http://blog.csdn.net/snlying/article/details/6130468 1,passwd文件passwd文件存放在/etc目录下.这个文件存放着所有用户帐号的 ...
- Vmware Ubuntu 虚拟机与Windows主机共享文件夹
概述: 1.安装Vmware tool 2.设置共享文件夹并选择总是连接 3.运行命令挂载共享文件夹 前两步很简单,第三步在root权限下运行命令:mount -t vmhgfs .host:/ /m ...
- kvm usb