android国际化设置语言后不起作用,引入QMUI后原来的国际化语言切换功能失效

创建时间:2019/4/2

*/

public class LanguageUtil {

/**

中文

/

public static final Locale LOCALE_CHINESE = Locale.SIMPLIFIED_CHINESE;

/*

英文

/

public static final Locale LOCALE_ENGLISH = Locale.ENGLISH;

/*

马来语

*/

public static final Locale LOCALE_MALAY = new Locale("ms","MY","MY");

private static final String LOCALE_SP = "LOCALE_SP";

private static final String LOCALE_SP_KEY = "LOCALE_SP_KEY";

public static Locale getLocale(Context context) {

SharedPreferences spLocale = context.getSharedPreferences(LOCALE_SP, Context.MODE_PRIVATE);

String localeJson = spLocale.getString(LOCALE_SP_KEY, "");

Gson gson = new Gson();

return gson.fromJson(localeJson, Locale.class);

}

private static void setLocale(Context pContext, Locale pUserLocale) {

SharedPreferences spLocal = pContext.getSharedPreferences(LOCALE_SP, Context.MODE_PRIVATE);

SharedPreferences.Editor edit = spLocal.edit();

String json = new Gson().toJson(pUserLocale);

edit.putString(LOCALE_SP_KEY, json);

edit.apply();

}

public static boolean updateLocale(Context context, Locale locale) {

if (needUpdateLocale(context, locale)) {

Configuration configuration = context.getResources().getConfiguration();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {

configuration.setLocale(locale);

} else {

configuration.locale = locale;

}

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

context.getResources().updateConfiguration(configuration, displayMetrics);

setLocale(context, locale);

//VLog.d("====================1");

return true;

}

//VLog.d("====================2");

return false;

}

public static boolean needUpdateLocale(Context pContext, Locale newUserLocale) {

//VLog.d("getCurrentLocale(pContext):"+getCurrentLocale(pContext)+", newUserLocale:"+newUserLocale);

//return true;

return newUserLocale != null && !getCurrentLocale(pContext).equals(newUserLocale);

}

public static Locale getCurrentLocale(Context context) {

Locale locale;

/if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //7.0有多语言设置获取顶部的语言

locale = context.getResources().getConfiguration().getLocales().get(0);

} else {

locale = context.getResources().getConfiguration().locale;

}/

locale = context.getResources().getConfiguration().locale;

return locale;

}

public static String getCurrentLanguage(Context context) {

String language;

/if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //7.0有多语言设置获取顶部的语言

locale = context.getResources().getConfiguration().getLocales().get(0);

} else {

locale = context.getResources().getConfiguration().locale;

}/

language = context.getResources().getConfiguration().locale.toString();

return language;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值