android编程切换多国语言

一般来说,android编程的多国语言支持的需求分为两种,一种是针对不同android设备的语言环境,App自动选择对应语言来显示。比如中文环境,就显示中文,如果英文就显示英文,这种方法较常见,也容易实现,网上相关文章很多,不多说了,另一种是在App中,可由用户自主选择App语言。此种方法网上相关文章也很多,但要真的实现却会有许多注意地方,本文主要对几个需注意的要点做下说明。

1.切言切的核心方法是用Resources类下的updateConfiguration方法来设置想要的语言。要想实现APP再次启动时自动切换成上次所选语言,就需要对所选哪种语言自行存贮。

public static void setApplicationLanguage(Context context) {
    Resources resources = context.getApplicationContext().getResources();
    DisplayMetrics dm = resources.getDisplayMetrics();
    Configuration config = resources.getConfiguration();
    Locale locale = getSetLanguageLocale(context);
    config.locale = locale;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        LocaleList localeList = new LocaleList(locale);
        LocaleList.setDefault(localeList);
        config.setLocales(localeList);
        context.getApplicationContext().createConfigurationContext(config);
        Locale.setDefault(locale);
    }
    resources.updateConfiguration(config, dm);

}

2.需要在Activity中重写AppCompatActivity下的attachBaseContext函数。

super.attachBaseContext(MultiLanguage.setLocal(newBase));

3.需要自定义一个继承自Application的app类,在其中重写attachBaseContext函数。

4.在调用语言切换方法时,使用的context应是Application的context,可用getApplicationContext()获得。

5、APP中title的语言切换,不能自动随所选择的语言切换,需要在代码中,重新设定title的显示内容。

相应的完整代码已上传csdn,经测试支持到androidX系统。已在实际项目中应用。此代码去除了语言切换非相关的所有东东,简单易懂,核心代码作为模块存在,方便移植。

下载链接:https://download.csdn.net/download/hugerat/13957532

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hugerat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值