有的项目。需要英语。这时候就涉及了中英文的切换了
前提:字符串都在string 中写两份。
一份是在 values中的strings中定义汉字
另外一份,就是你要切换的语言了。在相同的位置新建一个文件夹命名为: values-en 里面新建一个strings 文件.
预备开始。
private SharedPreferences sp;//这个必须得存在本地吧。不然你设置之后,当时改变了,人家从新进入APP中,又变回来了。多捉急呀。
private SharedPreferences.Editor ed;
private int type;//0是英语。其他是中文
一。提交 默认语言为中文
sp=this.getSharedPreferences("language",MODE_PRIVATE);
type=sp.getInt("type",0);//1是英语。0是中文
ed=sp.edit();
//先查询一波
setLanguage();
二,
//点击后这里设置一个按钮。 给它一个点击事件。
if(type==0){//说明当前是中文。
type=1;//先变个状态
FTConfig.TYPE= 1;//改变下
mLanguageTv.setText("中文");//把当前显示的改成中文
mRegBtn.setText("ENROLL");
mLoginBtn.setText("ENTER");
}else{
type=0;
FTConfig.TYPE= 0;//0是汉语
mLanguageTv.setText("中文");
mRegBtn.setText("ENROLL");
mLoginBtn.setText("ENTER");
mLanguageTv.setText("English");
mRegBtn.setText("注册");
mLoginBtn.setText("登录");
}
//最后再把 对应的状态 存在本地。
ed.putInt("type",type);
ed.commit();
setLanguage();
break;
//这个是改变中英文状态的代码
public void setLanguage(){
Resources resources=getResources();//获得res资源对象
Configuration config=resources.getConfiguration();//获得设置对象
DisplayMetrics dm=resources.getDisplayMetrics();//获得屏幕参数:主要是分辨率像素等。
if(type==1){
config.locale= Locale.ENGLISH;
}else{
config.locale= Locale.SIMPLIFIED_CHINESE;
}
resources.updateConfiguration(config,dm);
}
OK了。需要注意的是。你得定义两份,并且在XML中的文字都是引用的。切记哟。