Android 4.0中对话框项目文字无法用setText变更问题

今天在手机适配中发现漫画播放器的菜单中点击“自动播放”后,文字无法发生改变。后来发现,在点击“自动播放”,菜单消失的瞬间,菜单项文字确实发生了变化,只是再次打开菜单时菜单项文字又变回了“手动播放”,表明setText方法确实被调用并且生效了。Android 2.x的手机上运行不会发生该问题。

初步判断是作为菜单的GridView被重新生成了。但是通过log打印发现情况并非如此。

最后怀疑GridView所使用的SimpleAdapter中的getView被调用,引起菜单项文字被重新初始化。将SimpleAdapter置换成匿名内部类,在getView方法中打印log。发现菜单重新弹出时GridView虽然没有重新生成,但是SimpleAdapter的getView方法确实被重新调用了,引起菜单项重置。这样的话,就在getView中根据播放器的播放状态修改“自动播放”菜单项的文字就可以了。

至此,问题解决。

顺便一提。2.x的系统中菜单重新显示时菜单项没有重新生成。推测可能是4.0系统中在GridView不显示时自动回收了里面的子view,而不是等待GridView被销毁时才回收。

转载于:https://www.cnblogs.com/airshow/archive/2012/06/05/2535527.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值