android ,Tabhost,tab 动态刷新,onResume

我的程序是在AppTabMain这个Activity里面创建的tabwidget的,设置了四个选显卡。 现在网络数据通过Handler传递到了AppTabMain这个activity里面,怎么把值更新到指定的选项卡(可以是选项卡2,3,4,)里面的EditText里面呢?

没必要及时更新啊,先保存在父类里,等切换到指定的类时在更新

而且你的Activity不可见时你去更新它很可能出问题的

那假如切换到一个选显卡时 一定执行的方法是什么呢?

activity.onResume

可以将数据用JAVABEAN封装起来



业务需要,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。所以没有问题。
 




在TabActivity中,只在第一次进入时走了onCreate()、onStart()、onResume()三个阶段,然后在退出该页面时走了onPause()、onStop()和onDestroy()两个阶段。其他时间无论其中的子Activity如何切换,都不会再进入TabActivity的生命周期。

而子Activity,再第一次创建的时候,都会走onCreate()、onStart()、onResume()三个阶段,期间在各子Activity中切换,经历了onPause()和onResume()两个阶段,然后在主TabActivity退出时经历onPause()、onStop()和onDestroy()三个阶段

详细见下图说明:


上图是一个包含三个标签的TabActivity,我们把主TabActivity命名为custom,三个子tab从左往右依次命名为Info、contact和record

当我们第一次进入该TabActivity时:



当我们从tab1切换到tab2的时候,即从info切换到contact时



当从tab2切回tab1的时候:



由于切换tab3一样,故不再截图

当退出该TabActivity时:



以上,注意创建和销毁时的顺序

由于我并没有点击到tab3,tab3中的Activity没有create,所以退出时也没有destroy。



//获取当前Tab中对应的Activity

             th.setCurrentTab(3);

                             MessageActivity ma=(MessageActivity)th.getCurrentView().getContext();

                             ma.refreshData();

//有用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值