<pre name="code" class="html">1.在AndroidManifest.xml里面添加 android:configChanges="locale|layoutDirection"这行代码
<activity
android:name=".MainActivity"
android:configChanges="locale|layoutDirection"
android:label="@string/app_name"
>
2.在res目录下创建values-en 资源文件Strings.xml然后和 values里面的Strings.xml文件中英文相对应
3.单例模式
public class LanguageSettings {
private static LanguageSettings language=null;
private String currentLanguage="zh";
private LanguageSettings(){
}
public static LanguageSettings getInsagnce(){
if (language==null) {
language=new LanguageSettings();
}else{
}
return language;
}
public String getCurrentLanguage(){
return currentLanguage;
}
public void switchCurrentLanguage(){
if (currentLanguage.equals("zh")) {
currentLanguage = "en";
} else {
currentLanguage = "zh";
}
}
}
4.在onCreate的点击事件里面实现
private void fangfa() {
if (LanguageSettings.getInsagnce().getCurrentLanguage().equals("zh")) {
updateActivity("en");
LanguageSettings.getInsagnce().switchCurrentLanguage();
} else {
// 切换成中文
updateActivity("zh");
LanguageSettings.getInsagnce().switchCurrentLanguage();
}
}
private void updateActivity(String sta) {
// 本地语言设置
Locale myLocale = new Locale(sta);
Resources res = getResources(); // 获得res资源对象
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration(); // 获得设置对象
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
onCreate(null);
// recreate();//也可以不过有闪动}}