Android `application.resources.getString` не предоставляет правильное локализованное значениеAndroid

Форум для тех, кто программирует под 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.

Может ли кто-нибудь помочь мне получить правильные локализованные значения для моего приложения в модели представления?

Вернуться в «Android»