【发布时间】:2019-05-22 05:02:47
【问题描述】:
我们在更改 Android 应用的语言环境时遇到了日期选择器的一些问题。任何人都可以帮助我。
当我们更改 Device Francia(Canada) 的语言时,应用程序可以正常使用此代码
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Locale.setDefault(resources.configuration.locales.get(0))
}else{
Locale.setDefault(resources.configuration.locale)
}
但是如果我们更改应用程序的区域设置而不更改设备语言设置会得到不正确的结果。
var locale=Locale(SharedPreferencesManager.getStringPreference(Constants.LOCALE, ""))
Locale.setDefault(locale)
val resources = resources
val configuration = resources.configuration
val displayMetrics = resources.displayMetrics
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
configuration.setLocale(locale)
createConfigurationContext(configuration)
} else {
configuration.locale=locale
resources.updateConfiguration(configuration, displayMetrics)
}
Incorrect View(Cancel and OK button not change as per app locale )
【问题讨论】:
-
什么是“不正确的结果”,预期的结果是什么?
-
完整的 Android Material DatePickerDialog 的语言不会改变。
-
预期结果:完整的日期选择器应代表 App Locale 进行更改