设置应用语言
来源:互联网 发布:算法pdf 编辑:程序博客网 时间:2024/06/06 09:31
package com.cnmobl.utils;import java.util.Locale;import android.content.Context;import android.content.SharedPreferences;import android.content.res.Configuration;import android.content.res.Resources;import android.preference.PreferenceManager;import android.util.DisplayMetrics;/** * * 应用设置 * * */public class LanguageSettingUtil {//单例模式- private static LanguageSettingUtil instance; private Context context; //存储当前系统的language设置- private String defaultLanguage; //存储当前系统Locale- private Locale defaultLocale; public final static String ENGLISH = "en"; public final static String CHINESE = "zh"; private LanguageSettingUtil(Context paramContext) { //得到系统语言- Locale localLocale = Locale.getDefault(); this.defaultLocale = localLocale; //保存系统语言到defaultLanguage String str = this.defaultLocale.getLanguage(); this.defaultLanguage = str; this.context = paramContext; } //检验自身是否被创建- public static LanguageSettingUtil get() { if (instance == null) throw new IllegalStateException("language setting not initialized yet"); return instance; } //初始化- public static void init(Context paramContext) { if (instance == null) { instance = new LanguageSettingUtil(paramContext); } } // 创建Configuration- private Configuration getUpdatedLocaleConfig(String paramString) { Configuration localConfiguration = context.getResources().getConfiguration(); Locale localLocale = getLocale(paramString); localConfiguration.locale = localLocale; return localConfiguration; } //得到APP配置文件目前的语言设置- public String getLanguage() { SharedPreferences localSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this.context); //如果当前程序没有设置language属性就返回系统语言,如果有,就返回以前的- return localSharedPreferences.getString("language", this.defaultLanguage); } //如果配置文件中没有语言设置- public Locale getLocale() { String str = getLanguage(); return getLocale(str); } //创建新Locale并覆盖原Locale- public Locale getLocale(String paramString) { Locale localLocale = new Locale(paramString); Locale.setDefault(localLocale); return localLocale; } //刷新显示配置- public void refreshLanguage() { String str = getLanguage(); Resources localResources = this.context.getResources(); if (!localResources.getConfiguration().locale.getLanguage().equals(str)) { Configuration localConfiguration = getUpdatedLocaleConfig(str); // A structure describing general information about a display, such // as its size, density, and font scaling. DisplayMetrics localDisplayMetrics = localResources.getDisplayMetrics(); localResources.updateConfiguration(localConfiguration,localDisplayMetrics); } } //设置系统语言- public void saveLanguage(String paramString) { PreferenceManager.getDefaultSharedPreferences(this.context).edit().putString("language", paramString).commit(); } //保存系统的语言设置到SharedPreferences- public void saveSystemLanguage() { PreferenceManager.getDefaultSharedPreferences(this.context).edit().putString("PreSysLanguage", this.defaultLanguage).commit(); } public void checkSysChanged(String cuerSysLanguage) { //如果系统语言设置发生变化- if (!cuerSysLanguage.equals(PreferenceManager.getDefaultSharedPreferences(this.context).getString("PreSysLanguage", "zh"))) { //如果系统保存了this对象,就在这里修改defaultLanguage的值为当前系统语言cuerSysLanguage this.defaultLanguage = cuerSysLanguage; saveLanguage(cuerSysLanguage); saveSystemLanguage(); } }}
/* 设置语言*/ public static void setLanguage(Context context){ sharedPreferences = context.getSharedPreferences(context.getPackageName(), 0); int index = sharedPreferences.getInt("recordType", 0);if(index == 0 || index == 1){// 自动设置语言 ,不做操作}else if(index == 2 ){// 中文change("zh",context);} else if(index == 3){// 英文change("en",context);} } public static void change(String language,Context context){LanguageSettingUtil.init(context);// 初始化languageSetting = LanguageSettingUtil.get();// 检查是否已经初始化 languageSetting.saveLanguage(language);// 设置为"en"语言 LanguageSettingUtil.get().refreshLanguage();// 刷新 }
0 0
- 设置应用语言
- 根据当前系统语言,设置应用语言
- Android 应用语言设置的实现
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- android应用开发-----------------本地多语言设置
- 设置应用内系统默认语言
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- 设置应用内的系统控件语言
- android app根据系统语言设置应用语言
- iOS应用程序语言本地化及应用内语言设置
- 关于linux本地语言的设置和应用。
- 提高SDK下载速度
- ubuntu12.04 安装 freesurfer
- CDN技术原理
- AsyncTask隐藏的陷阱
- Log4j 基础使用
- 设置应用语言
- 解决Python包安装问题
- 王立平--SensorTag
- hibernate的session
- 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式
- 线性回归 Linear Regression
- Hibernate对象关系映射---一对一
- Eclipse的Lua开发插件 LDT地址
- First Missing Positive