android tabhost的使用方法,android TabHost的基本使用
1.概念
盛放Tab的容器就是TabHost。TabHost的实现有两种方式:
第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。各个Tab中的内容在布局文件中定义就行了。
第二种方式,不继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。
2.案例
1)继承TabActivity
res/layout/main.xml
HelloTabHost.java
public class HelloTabHost extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//调用TabActivity的getTabHost()方法获取TabHost对象
TabHost tabHost = getTabHost();
//设置使用TabHost布局
LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(),true);
//添加第一个标签页
tabHost.addTab(tabHost.newTabSpec("tab01").setIndicator("已接电话").setContent(R.id.tab01));
//添加第二个标签页,并在其标签上添加一个图片
tabHost.addTab(tabHost.newTabSpec("tab02").setIndicator("未接电话",getResources().getDrawable(R.drawable.icon)).setContent(R.id.tab02));
//添加第三个标签页
tabHost.addTab(tabHost.newTabSpec("tab03").setIndicator("已拨电话").setContent(R.id.tab03));
}
}运行效果图:
2)不继承TabActivity
继承普通Activity,标签id必须为tabs、标签id必须为tabcontent.这个方式在通过findViewById获得TabHost之后,必须要调用setup方法。
main.xml代码
android:layout_height="wrap_content" />
Activity中代码:
public class TabHostTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取TabHost对象
TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
// 如果没有继承TabActivity时,通过该种方法加载启动tabHost
tabHost.setup();
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("第一个标签",
getResources().getDrawable(R.drawable.icon)).setContent(
R.id.view1));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("第三个标签")
.setContent(R.id.view3));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("第二个标签")
.setContent(R.id.view2));
}
}
效果图:
自定义TabHost的 TabWidget:
define.xml:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
android:orientation="vertical"
android:gravity="center"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
/>
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
在Activity中的使用:
private View getView(String name){
LayoutInflater inflater = getLayoutInflater();
View v = inflater.inflate(R.layout.define, null);
TextView tv = (TextView) v.findViewById(R.id.tv);
tv.setText(name);
return v;
}
在tabHost中的设置头部的TabWidget:
TabSpec tab1 = tabHost.newTabSpec("one");
tab1.setIndicator(getView("首页")); //设置自定义的TabWidget
效果图:
android tabhost的使用方法,android TabHost的基本使用相关推荐
- android颜色值的表示方法android:background=#FFFFFFFF的意思
android颜色值的表示方法 android:background="#FFFFFFFF"的意思 Android中的颜色值是通过红(Red).绿(Green).蓝(Blue)三原 ...
- android中的add方法,Android中Fragment怎么addView?
慕勒3428872 Fragment是Android honeycomb 3.0新增的概念,在Android--Fragment介绍.AndroidFragment使用.Android Fragmen ...
- android的反调试方法,Android平台融合多特征的APP反调试方法与流程
本发明涉及Android平台融合多特征的APP反调试方法,属于计算机与信息科学技术领域. 背景技术: 应用程序本身并不具备反调试的功能,但是动态调试是动态分析应用逻辑.动态脱壳等攻击方式所采取的必要手 ...
- android 开启子线程方法,android中开启子线程
AndroidRuntime(673): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/ ...
- android 矢量图片使用方法,Android中的矢量图
概述 VectorDrawable是通过XML文件中的一系列点,线和曲线及其相关颜色信息定义的. 使用VectorDrawable的主要优点是图像可扩展性. 它可以缩放而不损耗显示质量,这意味着相同的 ...
- android 设置全屏方法,Android中设置全屏的方法
在开发中,我们经常需要把我们的应用设置为全屏,这里有两种方式: 一是在代码中设置; 二是在配置文件中设置 一. 在代码中设置 public class BaseActivity extends Act ...
- Android解析xml的方法,Android中解析XML格式数据的方法
XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...
- android toolbar的使用方法,Android中Toolbar的基本使用
Android的标题栏是很重要的一个模块,App是否易用很大一部分要看标题栏.写这个博客的时候刚发现谷歌推出了一种新的标题栏实现方式. 它相对于以前的ActionBar来说,最大的变化是开发者可以在标 ...
- android monitor的使用方法,Android Device Monitor使用方法及常见问题解决方案
Android Device Monitor使用方法及常见问题解决方案 发布时间:2018-07-17 18:18, 浏览次数:1184 , 标签: Android Device Monitor DD ...
- android 闹钟提醒实现方法,Android开发实例之闹钟提醒
本实例通过TimePickerDialog时间选择对话框让用户设置闹钟.并通过AlarmManager全局定时器在指定的时间启动闹钟Activity . 程序执行效果图: 实例代码: package ...
最新文章
- 单页面与多页面的区别及优缺点
- 中山大学提出SimAM:无参Attention!助力分类/检测/分割涨点!
- 关于jquery调用webservice的一些感想
- goland设置goroot_go环境搭建-goland使用、gopath、go命令
- Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析
- rocketMq发送事务消息
- 页面上通过地址栏传值时出现乱码的两种解决方法
- 关于SVN更新时文件加锁的小结
- 美元符号在什么计算机语言,美元符号是什么?怎么打?
- 柳神PAT甲级真题目录
- 偶然 --徐志摩
- 每日算法 - 列出24点游戏的所有解法
- NYOJ-712(动态规划)-题目----------------------------- 探寻宝藏
- 如何学好计算机英语怎么说,如何学好英语翻译
- AUTOCAD二次开发工具
- 公司产品经理培训内容
- 学习神器Toast Fish(附下载链接)
- android auto note 8,可持续发展BMW将发布无线安卓互联系统,CarPlay终于不再一家独大!...
- JUCE的UI详解(Slider篇)
- 华为0510 实习笔试
热门文章
- wifi芯片型号厂家简介
- Windows读写硬盘
- 不加群提取群成员_钉钉群机器人如何快速集成?无需API代码开发对接企业CRM,营销,表单,OA,客服和其他内部系统...
- 中标麒麟服务器系统安装教程,安装国产Linux中标麒麟操作系统教程
- 2022见证中国崛起从Python绘制中国地图开始:使用pyecharts最新版本绘制中国地图实例详解,个性化地图定制及常用参数解析
- Macromedia flash制作落叶飘下动画
- 主流WebService框架
- crio电压采集 labview_基于LabVIEW和CompactRIO开发的EDM过程控制器
- wmv怎么转换成视频mp4?
- 蜂鸣器发声程序c语言,基于51单片机蜂鸣器发声的C语言程序