我有两个字符串文件 "en" 和 "tr"。当我更改我的电话语言时,字符串文件会自动更改(我没有为此结果编写额外的代码,也不知道这是如何发生的)。 我想通过程序更改字符串文件。 我使用了这段代码。我得到了 Toast 消息,但语言没有改变。为什么?我之前用过这些代码,用 Java 编写的应用程序,而不是 Kotlin,这些代码可以正常工作。请不要说重复,因为我读了很多问题。我尝试了很多方法,到目前为止已经4个小时了。
override fun onResume() {
buttonDate()
changeLanguage()
super.onResume()
}
fun changeLanguage(){
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext)
val language = sharedPreferences.getString("language","bak")
Toast.makeText(applicationContext,language,Toast.LENGTH_SHORT).show()
if(language=="English"){
Toast.makeText(applicationContext,"English",Toast.LENGTH_SHORT).show()
language("")
}else if(language=="Turkish"){
Toast.makeText(applicationContext,"Turkish",Toast.LENGTH_SHORT).show()
language("tr")
}
}
fun language(language: String){
val locale = Locale(language)
Locale.setDefault(locale)
val resources = getResources()
val configuration = resources.getConfiguration()
configuration.locale = locale
resources.updateConfiguration(configuration, resources.getDisplayMetrics())
}