【发布时间】:2010-12-21 21:23:15
【问题描述】:
问题是:当我有一个在后台运行的活动时,我切换了区域设置,然后切换回应用程序,所有内容都会更新...除了具有“android:id”属性集的复选框和单选按钮.
如果复选框和单选按钮没有“android:id”属性,那么它们会更新 OK。其他字段不存在这个问题,不管有没有“android:id”属性。
确保在更改区域设置时更新我的跑步活动中的所有内容的最佳方法是什么?
重现步骤:
1) 在 Eclipse 中创建一个“Hello, Android”项目。 2) 在主布局中,定义两个复选框:
<CheckBox android:text="@string/checkbox" android:id="@+id/CheckBox01" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>
<CheckBox android:text="@string/checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>
3) 创建两个strings.xml:一个在“values”下,一个在“values-es”下。
4) 在“values”下创建以下字符串:
<string name="checkbox">English</string>
5) 在“values-es”下创建如下字符串
<string name="checkbox">español</string>
6) 将设备设置为“英语”
7) 在模拟器或任何设备上运行应用程序(在 HTC G1 上测试)。
8) 观察。两个复选框都显示“英语”。
9) 按“主页”返回菜单并让应用程序在后台运行。
10) 转到设置。将语言切换为“español”
11) 按住“主页”。返回应用程序。
预期结果:
两个复选框都写着“español”
实际结果:
第一个复选框显示“英语”
第二个复选框显示“español”
带有“android:id”属性的复选框似乎没有按应有的方式更新。没有“android:id”属性的复选框按预期工作。
【问题讨论】:
-
修复此行为的补丁已合并到 master 分支。参考android-review.googlesource.com/#/c/67850
标签: android layout localization