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)
}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐