У меня было несколько кодов для изменения локали программно в Java.Но когда мое приложение мигрировало в Kotlin, я не могу больше менять язык.
Например, этот код на Java работал очень хорошо:
public static final void setAppLocale(String language, Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
Resources resources = activity.getResources();
Configuration configuration = resources.getConfiguration();
configuration.setLocale(new Locale(language));
activity.getApplicationContext().createConfigurationContext(configuration);
} else {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Configuration config = activity.getResources().getConfiguration();
config.locale = locale;
activity.getResources().updateConfiguration(config,
activity.getResources().getDisplayMetrics());
}
}
Я пробовал много кодов в Kotlin, но неиз них работал на меня.Это моя последняя попытка:
fun changeLanguage(context: Context, language : String) {
val locale = Locale(language)
Locale.setDefault(locale)
val config = context.resources.configuration
config.setLocale(locale)
context.createConfigurationContext(config)
context.resources.updateConfiguration(config, context.resources.displayMetrics)
}
Как я могу изменить локальное приложение в Kotlin?Старые коды, написанные на Java, не работали в приложении Kotlin.