1.首先知道创建多个values方法,strings.xml是你设置多国语言地方
这里是我创建的一个values-en文件家(可以根据不同国家建立不一样后缀的values)
2.这里是代码部分
2.1,AndroidManifest.xml内添加 android:configChanges="locale"
<application
android:name=".App"
android:configChanges="locale">
2.2,在BaseActivity的setContentView方法之前添加setLanguage方法。(之前看其他资料还需要在Application初始化地方也添加此方法,但测试无效,只需要在BaseActivity的setContentView之前添加就可以。)
fun setLanguage(context: Context) {
/**
* 这里是不同国家也就是创建的values-en的标识,
* 可设置多个国家在下边的when()函数内进行多国判断,
* 我这里只设置了英语,默认为汉语
*/
val language = "en"
val resources = context.resources
val config = resources.configuration
val displayMetrics = resources.displayMetrics
config.setLocale(Locale.getDefault())
when (language) {
"en" -> config.setLocale(Locale.ENGLISH)
else -> config.setLocale(Locale.getDefault())
}
resources.updateConfiguration(config, displayMetrics)
}