1、首先需要如下步骤创建对应文件夹下的strings.xml文件


如上步骤会创建values-en文件夹,再在将文件夹中创建strings.xml文件

在此内容写入需要展示的内容字符
2、修改应用内置语言,其代码如下:(对应类名为:MultiLanguageUtils)
/**
* 修改应用内语言设置
*
* @param language 语言
*/
public static void change(Context context, String language) {
if (Objects.isNull(context) || StringUtils.isBlank(language)) {
return;
}
SpUtil.getInstance().put(Constants.SP_LANGUAGE, language);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
LocaleListCompat appLocales = LocaleListCompat.forLanguageTags(language);
AppCompatDelegate.setApplicationLocales(appLocales);
} else {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
}
3、还需在对应的BaseActivity中重新onConfigurationChanged方法,并实现如下内容:
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (Objects.nonNull(newConfig.locale)) {
String systemLanguage = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
systemLanguage = newConfig.getLocales().toLanguageTags();
} else {
systemLanguage = newConfig.locale.toLanguageTag();
}
MultiLanguageUtils.change(this, systemLanguage);
}
}
4、然后在对应需要却换语言的地方进行却换即可,操作如下:
MultiLanguageUtils.change(this, "zh-CN");
recreate();
即可实现语言却换功能

6164

被折叠的 条评论
为什么被折叠?



