Android `application.resources.getString` не предоставляет правильное локализованное значение ⇐ Android
Android `application.resources.getString` не предоставляет правильное локализованное значение
Мне нужно установить значение элемента пользовательского интерфейса из строкового ресурса. Это локализованное приложение. Я думал, все будет довольно просто:
textField.postValue(getApplication().resources.getString(R.string.text)) Когда я выбираю язык, я устанавливаю его в SharedPreferences, а в attachBaseContext я устанавливаю этот язык в качестве локали:
частное развлечение Context.setAppLocale(язык: String): Context { val locale = Локаль (язык) Locale.setDefault(локаль) val config = resources.configuration config.setLocale(локаль) config.setLayoutDirection(локаль) вернуть createConfigurationContext (конфигурация) } переопределить fun AttachBaseContext(newBase: Context) { // читаем из разделяемого префа ... super.attachBaseContext(ContextWrapper(newBase.setAppLocale(язык))) } А после выбора языка я просто перезапускаю приложение.
Как перезапустить приложение:
editor.apply() заканчивать() startActivity (намерение) Все тексты в моем приложении обновляются, за исключением тех, которые я установил из android-viewmodel с помощью getString.
Может ли кто-нибудь помочь мне получить правильные локализованные значения для моего приложения в модели представления?
Мне нужно установить значение элемента пользовательского интерфейса из строкового ресурса. Это локализованное приложение. Я думал, все будет довольно просто:
textField.postValue(getApplication().resources.getString(R.string.text)) Когда я выбираю язык, я устанавливаю его в SharedPreferences, а в attachBaseContext я устанавливаю этот язык в качестве локали:
частное развлечение Context.setAppLocale(язык: String): Context { val locale = Локаль (язык) Locale.setDefault(локаль) val config = resources.configuration config.setLocale(локаль) config.setLayoutDirection(локаль) вернуть createConfigurationContext (конфигурация) } переопределить fun AttachBaseContext(newBase: Context) { // читаем из разделяемого префа ... super.attachBaseContext(ContextWrapper(newBase.setAppLocale(язык))) } А после выбора языка я просто перезапускаю приложение.
Как перезапустить приложение:
editor.apply() заканчивать() startActivity (намерение) Все тексты в моем приложении обновляются, за исключением тех, которые я установил из android-viewmodel с помощью getString.
Может ли кто-нибудь помочь мне получить правильные локализованные значения для моего приложения в модели представления?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Локализованное обязательное поле, не отображающее звездочку (*) в Pimcore 11.4.3
Anonymous » » в форуме Php - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Локализация углерода Laravel не работает (получите локализованное название месяца от номера)
Anonymous » » в форуме Php - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Не удалось выполнить цель org.apache.maven.plugins:maven-resources-plugin:2.5:resources
Anonymous » » в форуме JAVA - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-