起因
我们在开发app可能会拓展国外市场,那么对包含英语在内的其它语言支持就很有必要了。
效果
思路
一:添加相关资源文件,并引用。
二:设置configuration,configuration里面指定语言类型。
三:在需要时候更换configuration即可。
实现
在res的values文件夹下新建相关语言类型的资源文件
右键新建资源文件,选择Locale,点击 >> 按钮
选择Language,以及地区(any region)即可
最后 文件名字和其他语言文件名字一样,strings即可。
在MyApplication里面的onCreate和onConfigurationChanged方法里面添加语言相关处理(onConfigurationChanged是为了处理横竖屏切换问题),给应用上下文对象添加configuration,configuration里面指定了当前语言。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
languageWork();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
languageWork();
}
private void languageWork() {
//自己写的工具包(如下)
Locale locale = LanguageUtil.getLocale(this);
LanguageUtil.updateLocale(this, locale);
}
}
LanguageUtil如下(没整理过的小伙伴直接用即可),为了保证语言从A切换到B,在之后启动应用依旧使用B语言,我们需要将B语言存入本地。下次启动应用,设置即可。
public class LanguageUtil {
/**
* 中文
*/
public static final Locale LOCALE_CHINESE = Locale.CHINESE;
/**
* 英文
*/
public static final Locale LOCALE_ENGLISH = Locale.ENGLISH;
/**
* 俄文
*/
public static final Locale LOCALE_RUSSIAN = new Locale("ru");
private static final String LOCALE_SP = "LOCALE_SP";
private static final String LOCALE_SP_KEY =