AndroidTabWidget切换卡的实现应用
TabWidget类似于Android中查看电话薄的界面,通过多个标签切换显示不同内容。要实现这一效果,首先要了解TabHost,它是一个用来存放多个Tab标签的容器。每一个Tab都可以对应自己的布局,比如,电话薄中的Tab布局就是一个List的线性布局了。
要使用TabHost,首先需要通过getTabHost方法来获取TabHost的对象,然后通过addTab方法来向TabHost中添加Tab。当然每个Tab在切换时都会产生一个事件,要捕捉这个事件需要设置TabActivity的事件监听setOnTabChangedListener。
1、布局文件
2、修改MainActivity,注意是继承自TabActivity
publicclassMainActivityextendsTabActivity{ privateTabHosttabHost; @Override protectedvoidonCreate(BundlesavedInstanceState){ 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(newOnTabChangeListener(){ @Override publicvoidonTabChanged(StringtabId){ AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this); Dialogdia; builder.setTitle("提示"); builder.setMessage("当前选中了"+tabId+"标签"); builder.setPositiveButton("确定",newOnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ dialog.cancel(); } }); dia=builder.create(); dia.show(); } }); } //为TabHost添加标签新建一个newTabSped(newTabSpec)设置其标签和图标(setIndicator)、设置内容(setContent) //TabSpec是TabHost的内部类TabHost对象的newTabSpec()方法返回一个TabSpec对象 //源码里边是这么写的publicTabSpecnewTabSpec(Stringtag) //{returnnewTabSpec(tag);} privatevoidaddTab(){ tabHost.addTab(tabHost .newTabSpec("tab1") .setIndicator("TAB1", getResources().getDrawable(R.drawable.ic_launcher))//setIndicator()此方法用来设置标签和图表 .setContent(R.id.textview1)); //指定内容为一个TextView--->publicTabHost.TabSpecsetContent(intviewId)此方法需要一个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、运行程序:如下!
相关文章
- android系统签名工具,android应用实现重启系统+签名「建议收藏」
- 如何在SpringBoot应用中实现跨域访问资源和消息通信?
- SpringBoot应用监控解析:Actuator实现原理
- 利用Hyperledger Fabric开发你的第一个区块链应用
- 浅析AI智能检测在工地安全生产与风险预控场景中的应用
- 【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
- Redis 应用实践-消息队列-异步处理
- 实现项目中高性能的Redis应用(redis应用到项目中)
- Linux 3g应用实现快速网络连接(linux3g)
- Oracle应用:驱动创新与突破(oracle应用领域)
- acle实例的应用实现高效运行的Oracle多实例集群方案(oracle多个or)
- Web应用隐形后门的设计与实现
- Oracle高效实现循环结果集应用技巧分享(oracle循环结果集)
- Oracle连接实现高效数据处理,打造企业级应用基础(oracle连接)
- 用友MSSQL数据库:从下载到实现数据库应用(用友mssql数据库下载)
- Vivado开发Linux应用利丰收(linuxvivado)
- 实现应用在Redis中的对接(应用对接redis)
- 实现快速网关限速与Redis的协同应用(网关限速redis)
- 论文编写Redis论文实现高性能数据库应用(编写redis)
- 利用Redis集群提升缓存应用效率(缓存数据库redis集群)
- 使用Redis缓存提高应用性能的实践(用redis缓存的实现)
- MySQL实现减法运算的方法及应用场景详解(mysql 中减法)
- 易百改变企业级分布式缓存 Redis应用模式(易百 redis)
- Yii2应用Redis实现多数据库切换(yii2redis切换库)
- 使用SSM框架实现缓存技术Redis的应用(ssm怎么使用redis)
- MySQL的XA协议实现及其在分布式系统中的应用(mysql xa 分布式)
- Oracle函数中求极差的应用(oracle中求差的函数)
- 探究Oracle10g角色的作用及应用场景(oracle10g角色)
- javascript利用控件对windows的操作实现原理与应用
- Perllocaltime时间函数的应用介绍
- Ruby中的反射(Reflection)应用实例