横竖屏切换导致国际化的问题

来源:互联网 发布:乌鲁木齐网络问政平台 编辑:程序博客网 时间:2024/05/21 20:00

package com.example.languagetest;import java.util.Locale;import android.app.Application;import android.content.res.Configuration;import android.content.res.Resources;import android.util.DisplayMetrics;import android.util.Log;public class MyApplication extends Application{@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();languageSet();Log.e(MyApplication.class.getSimpleName(), "onCreate+===========================");}@Overridepublic void onConfigurationChanged(Configuration newConfig) {// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);Log.e(MyApplication.class.getSimpleName(), "onConfigurationChanged+===========================");languageSet();}private void languageSet(){String language = this.getResources().getString(R.string.language_set);if("en".equals(language)){/* * 国际化 */Resources resources = getResources();//获得res资源对象Configuration confiObj = resources.getConfiguration();//获得设置对象yeshiDisplayMetrics dm = resources .getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。confiObj.locale = Locale.ENGLISH; //简体中文resources.updateConfiguration(confiObj, dm);Log.e("EN", confiObj.locale+"");}else if("cn".equals(language)){Resources resources = getResources();//获得res资源对象Configuration confiObj = resources.getConfiguration();//获得设置对象DisplayMetrics dm = resources .getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。confiObj.locale = Locale.SIMPLIFIED_CHINESE; //简体中文resources.updateConfiguration(confiObj, dm);Log.e("EN", confiObj.locale+"");}}}

项目中,做pad功能的时候,国际化部分英文,部分中文,查了好久 才知道是横竖屏切换导致的,正确的做法是在自己的Application里重写onConfigurationChanged方法并重置语言设置,就可以解决,代码如上。


0 0