//strings.xml默认的是中文,适配英文的话就需要再创建一个values-en的文件夹,并且其中也是strings.xml文件
//中文的资源文件strings.xml
<resources>
<string name="app_name">MyApp</string>
<!--content-->
<string name="title">这是标题</string>
<string name="settings">设置</string>
<!--dialog-->
<string name="dialog_title">语言切换</string>
<string name="dialog_msg">请选择你要切换的语言</string>
<string name="dialog_positive">中文</string>
<string name="dialog_negative">英文</string>
<string name="toast_set_ch">设置成中文</string>
<string name="toast_set_en">设置成英文</string>
</resources>
//这是英文的资源文件对比一下可以没那么多数据但是中英文一定要对应上
<resources>
<string name="app_name">MyApp</string>
<!--content-->
<string name="title">title</string>
<string name="settings">settings</string>
<!--dialog-->
<string name="dialog_title">language switch</string>
<string name="dialog_msg">choose your language,please</string>
<string name="dialog_positive">Chinese</string>
<string name="dialog_negative">English</string>
<string name="toast_set_en">has change to English</string>
<string name="toast_set_ch">has change to Chinese</string>
</resources>
//直接粘贴在BaseActivity
private Context mContext = this;
// 中文 英文 日语 德语
private static final String[] language = {"zh_CN", "en", "ja", "de"};
public static final String CHINESE = language[0];
public static final String ENGLISH = language[1];
private String type;
/**
* 设置语言
*
* @param lauType
*/
private void set(String lauType) {
// 本地语言设置
Locale myLocale = new Locale(lauType);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}
//窗口显示转换
public void lanGuage(){
AlertDialog dialog = new AlertDialog.Builder(mContext)
.setTitle(getString(R.string.title))
.setMessage(getResources().getString(R.string.dialog_title))
.setNegativeButton(getResources().getString(R.string.dialog_negative), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
type = ENGLISH;
set(type);
Toast.makeText(mContext, getResources().getString(R.string.toast_set_en), Toast.LENGTH_SHORT).show();
recreate();
cler();
}
})
.setPositiveButton(getResources().getString(R.string.dialog_positive), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
type = CHINESE;
set(type);
Toast.makeText(mContext, getResources().getString(R.string.toast_set_ch), Toast.LENGTH_SHORT).show();
recreate();
}
})
.create();
dialog.show();
}
//刷新activity的文字
public void cler(){
Intent intent = new Intent(this, MainActivity.class);//跳到你的登录页面
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
//以上粘贴完成之后直接在 activity中做个点击事件调用lanGuage方法即可