android 设置默认语言 多语言切换

https://github.com/XiuKong/ChangeLanguage


1.本身不像维护多个版本在已经有了多语言,但是总难免有恶心的定制版,就是想要什么语言环境下都用他们设定的语言,

在继承Application中create时候

public static void defLanguge() {
if (VersionTools.version == Version.Standard)
return;

   String languageToLoad  = "ja";  
        Locale locale = new Locale(languageToLoad);  
        Locale.setDefault(locale);  
Configuration config = rs.getConfiguration();
DisplayMetrics metrics = rs.getDisplayMetrics();
config.locale = Locale.JAPAN;
rs.updateConfiguration(config, metrics);
}


    <!-- android:configChanges="locale"  修改默认语言 -->
    <application
        android:name="com.ubtechinc.app.AlphaApplication"
        android:allowBackup="true"
        android:configChanges="locale"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

    <!-- android:configChanges="locale"  修改默认语言 需要在Application类中也设置 -->
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

2.这样使用确实可以实现了设置默认语言,但是在有屏幕切换的应用中,屏幕切换后又会加载一遍Configuration  使得加载回跟手机系统语言一致

解决:在application中重写以下方法就可以

@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
defLanguge();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值