给tabhost加上点击监听,不是onTabChanged(String)监听
最近在项目中遇到点击tabhost里的tab项时做出监听,注意不是onTabChanged(String str)的监听,因为该监听是只有当你切换tab时才会发生动作事件。
TabHost的使用:
1:首先定义tabhost的布局
- <TabHost
- android:id="@android:id/tabhost"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
- <TabWidget
- android:id="@android:id/tabs"
- android:layout_width="wrap_content"
- android:layout_height="50dp"
- />
- FrameLayout
- android:id="@android:id/tabcontent"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="@android:color/transparent"
- />
- </LinearLayout>
- </TabHost>
这样你有了布局,
接下来,让你的类继承TabActivity,然后定义成员变量:
- private TabHost mTabHost;
- private TabWidget mTabWidget;
接着在OnCreate()里面进行初始化,
- mTabHost = getTabHost();
- mTabHost.setup(getLocalActivityManager());
- mTabWidget = mTabHost.getTabWidget();
然后进行setTab1(),setTab2()······
- mTabHost.setOnTabChangedListener(this);
- setTab(TAB_1, true);
- //默认设置第一个选项卡
setTab1()方法就是创建新的标签tab代码如下:
- private void setTab1() {
- View view = mInflater.inflate(R.layout.xxx, null);
- ((TextView) view.findViewById(R.id.x)).setText(getResources()
- .getString(R.string.tab_forum_1));
- Intent newsList = new Intent(this, AAAivity.class);
- TabSpec mTabSpec1 = mTabHost.newTabSpec(getResources().getString(
- R.string.tab_forum_1));
- mTabSpec1.setIndicator(view);
- mTabSpec1.setContent(newsList);
- mTabHost.addTab(mTabSpec1);
- }
setTab(TAB_1,true);方法其中里面的TAB_1=1;
该方法为:监听测试为点击第二个tab选项卡时出现点击事件。
- private void setTab(int id, boolean flag) {
- switch (id) {
- case TAB_1:
- mTabWidget.getChildAt(TAB_1).setBackgroundResource(R.drawable.select_group_bg2);
- abWidget.getChildAt(TAB_2).setBackgroundDrawable(null);
- case TAB_2:
- mTabWidget.getChildAt(TAB_2).setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mTabHost.getCurrentTab() != TAB_2) {//一定要判断这个是为了防止阻碍切换事件
- mTabHost.setCurrentTab(TAB_2);
- }else{
- //做你要做的事情
- }
- }
- });
- mTabWidget.getChildAt(TAB_1).setBackgroundDrawable(null);
- }
好了,接着写onTabChanged(String tabId)方法
- if (tabId.equalsIgnoreCase(getResources().getString(
- R.string.tab_forum_1))) {
- setTab(TAB_1, true);
- } else if (tabId.equalsIgnoreCase(getResources().getString(
- R.string.tab_forum_2))) {
- setTab(TAB_2, true);
- }
- }
好了监听已经实现。
给tabhost加上点击监听,不是onTabChanged(String)监听的更多相关文章
- vue 侦听器watch 之 深度监听 deep
<template> <div> <p>FullName: {{person.fullname}}</p> <p>FirstName: &l ...
- 问题1:Oracle数据库监听启动失败(重启监听,提示The listener supports no services)
编辑监听文件:/home/DB/oracle/11gR2/db/network/admin/listener.ora 在文件内添加静态监听实例,如下内容: SID_LIST_LISTENER =(SI ...
- 监听程序未启动或数据库服务未注册到该监听程序。启动该监听程序并注册数据库服务 然后重新运行 em configuration assistant。
在WIN 7/64Bit上安装ORACLE 11gR2后,管理网页Database Control(如:https://localhost:1158/em)始终登录不进去,总是说密码错误,使用配置工具 ...
- 2017云计算开源峰会 你是想听Linux谈开源还是想听OpenStack谈开源?
2017年,善于把握机遇的企业们不是正在开源,就是走在去开源的路上-- 开源是不是就意味着免费? 开源企业就是要当"活雷锋"? 开源项目究竟如何运作?如何参与开源社区? 如何获得最 ...
- 移动端控制视频点击播放点击下一个视频时自动停止播放&监听滑动溢出屏幕高度时停止播放
直接上代码js部分: <script type="text/javascript"> var go;//记录video播放器位置 var video=document. ...
- Android点击Button按钮的四种事件监听方法总结
首先我们在activity_main.xml里面先定义一个Button空间 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <RelativeLayout xmlns:a ...
- Android开发 ---基本UI组件2:图像按钮、单选按钮监听、多选按钮监听、开关
Android开发 ---基本UI组件2 1.activity_main.xml 描述: 定义一个按钮 <?xml version="1.0" encoding=" ...
- 实时监听input标签输入 实时监听文本框输入 避免中文输入法无法触发onkeyup事件的问题
前言: 对于实时监听输入,这种需求大多数都是用于一个联想字提醒,智能提醒.大家都知道onkeydown,onkeypress,onkeyup的在监听中文输入法或者右键粘贴的时候都存在一些弊端,不是那么 ...
- Oracle 数据库监听无法连接上、监听HANG住、监听无响应、TNS-12560
环境: Windows server 2003 Oracle 11.2.0.1 问题: 一套老数据库在运行了很久后,突然就连接不上了,提示监听异常. 处理: 1.CMD命令行检查监听状态:无监听 2. ...
随机推荐
- HDU 4825 字典树
HDU 4825 对于给定的查询(一个整数),求集合中和他异或值最大的值是多少 按位从高位往低位建树,查询时先将查询取反,然后从高位往低位在树上匹配,可以匹配不可以匹配都走同一条边(匹配表示有一个异或 ...
- Mac 使用ab性能测试工具
Mac 使用ab命令进行压测 1.在Mac中配置Apache ①启动Apache,打开终端 sudo apachectl -v 如下显示Apache的版本 sudo apachectl start 这 ...
- week2--线性表
一.PTA实验作业 题目1:顺序表删除重复元素(6-3) 设计思路 代码截图 PTA提交列表说明 编译错误:写'->'符号的时候总是漏掉'>'; 写'!='符号的时候漏写'!'; 解决方法 ...
- FPGA--数字芯片之母
这个世界先有鸡还是先有蛋?没有人知道答案.但是如果有人问ess9018.ak4497.cs43198这些高端SIGMADELTA架构DAC的妈妈是谁?我们可以回答您:它们都有一个同样的妈,名字叫做FP ...
- VS工具相关内容
1.VS自带的Visual Studio中的<C# 语言规范>安装路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Sp ...
- SpringMVC+hibernate4事务处理
首先spring-hibernate.xml里配置事务: <!-- 配置事务管理器 --> <bean id="transactionManager" class ...
- django-控制mysql事物
from django.db import transaction 两种方式控制事务:为了保持数据一致性 一个Book表,一个Author表.添加一本书,也要保证添加作者.By事物控制 book = ...
- django-连接数据库及创建表,已存字段的增删
连接数据库 配置文件settings DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 你的数据库引擎 'HOST' ...
- 原生态Vim使用快捷键
我的第一篇博客,凌晨2点加班不想睡,随便写点.本人菜鸟一个,努力学习,争取成为大神.. 第一篇写点什么东西呢,我目前是搞运维的,俗话说"工欲善其事必先利其器",Vim作为最基本的工 ...
- 图片拼接SIFT
图片拼接 SIFT: 特征点处理:位置插值,去除低对比度点,去除边缘点 方向估计 描述子提取 下面的程序中使用: 第一步: 使用SIFT生成器提取描述子和特征 第二步: 使用KNN检测来自A,B图的S ...