Здесь проблема: когда у меня есть работа, работающая в фоновом режиме, и я переключаю локали, и я возвращаюсь к приложению, все обновляет... Исключает флажки и переключатели с атрибутом "android: id" .
Если флажки и переключатели не имеют атрибута "android: id" , они обновляют ОК. Другие поля не имеют этой проблемы, имеют ли они атрибут "android: id" или нет.
Каков наилучший способ убедиться, что все в моем текущем действии обновляется всякий раз, когда изменяется локаль?
Шаги для воспроизведения:
1) Создайте проект "Hello, Android" в Eclipse. 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-es".
4) Создайте следующую строку под "значениями":
<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" работает как ожидалось.