您的位置:首页 > 移动开发 > Android开发

Android 判断当前系统语言

2017-10-26 15:19 281 查看
前言 

         欢迎大家我分享和推荐好用的代码段~~ 

声明 

          欢迎转载,但请保留文章原始出处: 

          CSDN : http://www.csdn.net 

          雨季o莫忧离: http://blog.csdn.net/luckkof

正文

列:zh_CN (1)方法1得到zh (2)方法2得到cn (3)方法3得到zh_CN
方法1:
import java.util.Locale;
String locale = Locale.getDefault().getLanguage();

方法2:
import android.content.res.Configuration;
import android.content.res.Resources;
Resources res = mContext.getResources();
Configuration config = res.getConfiguration();
String locale = config.locale.getCountry();

方法3:
import java.util.Locale;
String locale = Locale.getDefault().toString();

android每个应用都保存着一份仅对自身有用的配置,被封装在 android.content.res.Configuration 类里,通过该类,我们可以修改语言参数,实现对应用语言的变更。首先获取 Configuration 对象: Java代码  

Resources resource = getResources();  
Configuration config = resource.getConfiguration();    
 然后设置 config 中的 locale 属性,选择需要的语言。locale属性为一个Locale类的对象,比如我们要设置应用的语言为英语,那么可以这样实现: Java代码  

config.locale = Locale.ENGLISH;  
   或者要设置成系统默认的语言:Java代码  

config.locale = Locale.getDefault();   
最后,需要更新配置文件,执行下面的代码: Java代码  

getBaseContext().getResources().updateConfiguration(config, null);  
 
语言设置完成后,应用并不会自动刷新当前已经打开的Activity,所以为了刷新整个应用,目前比较通用的做法是重新启动应用: Java代码  

Intent intent = new Intent();  
intent.setClass(this, MainActivity.class);  
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
this.startActivity(intent);  
   另外需要注意的是,需要在Manifest.xml文件中的Activity中配置android:configChanges属性,通过配置该属性,Activity可以捕捉设备状态的变化: Xml代码  

<activity  
            android:name=".MainActivity"  
            android:label="@string/title_activity_main"  
            android:configChanges="locale" >  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
</activity>  
   具体的实现请参考Demo: LanguageChangeDemo下载地址:https://github.com/hanyi/LocaleChangeDemo.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: