前面用继承TabActivity的方法很好的完成了,TabHost的使用,和内容的动态加载。
业务需要,Tab的tab是可变的,用户可以选择要显示出来的tab页面,而且要求,现在后马上能够在UI上体现。
1,判断用户的选择,在onResum里处理,直接加用addTab加到TabHost里。
运行之后,才发现这种做法是多么的愚蠢。每次选择,就会把现在选择状态的tab加到原来TabHost里,取消选择的却没有消失。
2.仍然在onResum做,在addTab之前用clearAllTabs(),清除以前的所有tab。
运行后,发现有时可以,有时程序会崩溃掉。诡异的是,错误并不是发生在onResume里,因为它正常结束了。
仔细分析Log后,发现是getCurrentTab时出了错,而这个方法是由系统调用的。
修改办法,可以覆盖它,只是这样会比较麻烦。
3.纠结1个小时后,想到问题的关系所在。 就是currentTab这个成员出了问题。clear后,它没有变,系统再去取的时候就出了错。
毅然决定在clear之前,用setCurentTab(0)来定位到第一个。
4.OK。
经过数小时的奋斗,问题终于解决了,继续看我的电影,O(∩_∩)O~
注:setCurentTab(0)这样做其实是有问题的,因为有可能一个tab都没有。
只是,我们的业务里,如果用户一个tab都没有选的话,会有一他提示的tab。所以没有问题。
- 浏览: 411560 次
文章分类
- 全部博客 (327)
- Android (114)
- Java (13)
- Java基础 (14)
- Glib (2)
- linux (15)
- extjs (5)
- eclipse (2)
- Asterisk (56)
- MYSQL (6)
- 数据库 (9)
- PHP (7)
- C# (18)
- 杂谈~~ (1)
- web开发前端 (3)
- 网络编程 (2)
- Opensips (2)
- voip (3)
- debian (7)
- openfire (15)
- wordpress (1)
- 版本控制 (1)
- Android 线程服务广播 (1)
- SRTP (2)
- 单片机及ARM等 (3)
- 基础知识 (5)
- asp.net (2)
- 单片机 (1)
- 设计模式及架构 (1)
- 安全 (1)
- Cubieboard 草莓树莓各类派 Android开发板 (1)
- J2EE (2)
- BootStrap (3)
- BootStrap web前端开发 (1)
- web前端开发 (4)
- object-c (1)
- openwrt (8)
- 智能家居 (4)
- Node.js (4)
最新评论
-
xiaoxiecomeon:
你这个程序一存在线程的时间片相互抢占的问题,运行时间长了很可能 ...
Runnable 和 Thread -
dotjar:
我觉得话应该这么说:引用TestThread tt = new ...
Runnable 和 Thread -
dagf113225:
调用TelephonyManager的隐藏API是先参考Fra ...
Android提高第十四篇之探秘TelephonyManager
发表评论
-
直接拿来用!最火的Android开源项目整理
2015-09-16 10:13 600一、代码库 1、from 代码家 整理比较好的源 ... -
探讨android更新UI的几种方法
2014-06-09 23:27 614今天讲的内容非常简单,只是讲讲有关于android界面更新的 ... -
Android 滑动切换页面 以及屏幕手势
2014-05-08 17:49 525手机进入智能机时代,触摸屏也已成为主流之势,原来的手机按键也 ... -
android 用Achartengine 作图
2014-05-08 16:55 759Achartengine 是google的一 ... -
Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
2014-05-08 16:28 768Animation的4个基本动画效果 What is An ... -
java.lang.ClassNotFoundException: Didn't find class "android.support.v4.view.Vie
2014-05-06 14:43 2931Android错误:Caused by: java.lang ... -
Android Socket通信如何设置超时时间
2014-05-06 14:14 1078其实关于这个问题可能用到的人不会很多,不过我在这里还是说说。 ... -
【转】Android本地语音识别引擎PocketSphinx-语言建模
2014-02-13 10:35 1829Android本地语音识别引擎PocketSphinx- ... -
关于build.prop原始Dalvik虚拟机设定与调整
2013-09-05 10:40 1260原厂S3 台版 1GB Ramsystem/build.pro ... -
Android中Service与IntentService的使用比较
2013-09-04 15:24 1202该博客来自网络——— ... -
android 应用程序Activity之间数据传递与共享的几种途径
2013-08-01 17:24 9051.基于消息的通信机制 Intent ---boud ... -
android数据通信方式
2013-08-01 17:15 911http://www.itkee.com/develope ... -
“android.intent.category.DEFAULT”的目的是什么?
2013-07-31 16:43 5381、要弄清楚这个问题,首先需要弄明白什么是implicit( ... -
集成拨号盘,2句话的事情
2013-07-30 15:45 601<intent-filter> < ... -
[Android实例] android json
2013-07-17 15:20 653import java.io.ByteArrayOutput ... -
android json解析及简单例子
2013-07-17 15:19 931JSON的定义: 一种轻量级的数据交换 ... -
AsyncTask的用法-UI刷新发放
2013-07-15 14:50 665在开发Android应用时必须遵守单线程模型的原则: A ... -
java.lang.OutOfMemoryError处理错误
2013-07-15 14:41 671java.lang.OutOfMemoryError异常解决 ... -
关于android.view.WindowLeaked异常的解决方案
2013-07-15 10:34 613Android.view.WindowLeaked按字面了解, ... -
Android内存泄露
2013-07-15 10:15 712不少人认为JAVA程序, ...
相关推荐
android tabhost 动态添加 删除 排序 重命名
android tabhost 动态添加,删除,排序,重命名
android tabhost 动态添加,删除,排序,重命名(3)
android tabhost 动态添加,删除,排序,重命名
android tabhost 动态添加 删除 排序 重命名
android tabhost 动态添加,删除,排序,重命名(2):数据库操作
4. 添加内容:通过`tabSpec.setIndicator("标签名", indicatorDrawable);`设置标签指示器,`tabSpec.setContent(intent);`设置点击标签时要启动的Intent。 5. 添加并显示标签:使用`tabHost.addTab(tabSpec);`将标签...
在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...
在代码中,我们需要通过TabHost的`setup()`方法初始化TabHost,然后通过`addTab()`方法为每个Tab添加内容。每个Tab的内容可以是单独的Activity,也可以是Fragment。 示例代码: ```java TabHost tabHost = ...
在Android开发中,`TabHost`、`Spinner`和`ListView`是三个非常重要的组件,它们各自承担着不同的功能,并且可以协同工作以提供丰富的用户界面。`TabHost`用于创建多标签界面,`Spinner`则是一种下拉选择菜单,而`...
在Android应用开发中,`TabHost` 是一个非常重要的组件,它用于实现多标签页的界面切换,类似于微信、QQ等...在实际开发中,根据项目需求,可能还需要添加更多的功能,如自定义 `Tab` 样式、动态加载 `Tab` 内容等。
总结来说,自定义Android的TabHost可以使应用的界面更加个性化,同时通过合理利用Fragment可以优化性能。在实际开发中,还可以根据需求调整选项卡的行为,比如添加滑动效果、动画等。通过掌握这些技巧,你可以在...
总结起来,这个项目涉及了Android的TabHost组件、日期处理和界面交互等多个知识点,开发者通过TabHost实现了四个独立的界面,每个界面都具备日期显示和操作的功能。在实际的开发过程中,需要熟练掌握Android UI设计...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者帧布局(FrameLayout)。本实例演示了如何在Android应用程序中自定义TabHost,以...
总结起来,Android的TabHost是一个强大的工具,用于构建带有多个Tab的用户界面。通过设置TabWidget和FrameLayout,以及使用TabSpec来管理每个Tab的内容,我们可以轻松地创建出功能丰富的多视图应用。尽管现代Android...
总结,TabHost在Android应用中提供了方便的多标签导航功能。通过设置TabSpec、初始化TabHost、添加Tab以及自定义样式,开发者可以轻松地构建出功能丰富的界面。理解TabHost的源码也有助于深入掌握其工作机制,从而更...
在`onCreate()`方法中,我们可以加载布局文件,获取TabHost对象,并添加标签: ```java TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup(); TabSpec tab1 = tabHost.newTabSpec(...
接着,使用`addTab()`方法为每个标签添加内容,通常包括标签的标题、图标和对应的Activity或布局。例如: ```java TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(); Intent intent1 = ...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的界面,每个选项卡可以展示不同的内容。在传统的TabHost使用中,我们通常只能使用系统预设的样式和颜色,但为了使应用更加个性化,开发者...