Android语言切换RadioButton文本不切换问题

来源:互联网 发布:2017淘宝游戏专营 编辑:程序博客网 时间:2024/04/30 04:57

前言

之前在论坛有发布过一个帖子,RadioButton小bug?语言切换RadioButton无作用”,最后虽然沉贴啦,但是我还是坚强的查下去了!作为一个菜鸟,我只是想记录下问题,大家共享讨论。


问题

在进行语言切换的时候,发现RadioButton不像其他控件一样,能够正常切换文本内容。

本来查了源码,看见了onSaveInstanceSate()时,有一段代码setFreezesText(true),导致了此问题。

很自然的我就想到了,在RadioButton中设置属性android:freezesText="false",因为我的粗心不知道咋的,居然可以!

后来又在Fragment中又不行了(其实本来就不行,哈哈),然后我就又查啊查啊。


结论

这里解释的就是多国语言切换,设置setFreezesText()false无效的原因了。

RadioButton语言切换是由于android系统级别的重启,将调用onSaveInstanceSate()来保存数据,

而我忽略了,在Activity/Fragment/View在系统级重启之后,将会通过Bundle来传递之前在onSaveInstanceSate()中保存的数据。

Activity/View是在OnRestoreInstanceState()中通过Bundle来重新刷新之前保存的数据

之前即使设置setFreezesText()为false也没用,文本早就被保存了。

OnRestoreInstanceState()它是在XML控件加载之后,加入布局之前调用,这也是为啥我一直跟踪源码发现数据明明是对的,后来又错了的缘由!

1 0
原创粉丝点击