您的位置:首页 > 移动开发 > Android开发

[Android]应用语言切换 国际化

2016-09-21 10:43 393 查看
本文纠正  http://blog.csdn.net/sodino/article/details/6596709

那哥们,有错误

他应该没加  <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>这个权限

效果图





public class MainActivity extends Activity implements OnClickListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceUtil.init(this);
findViewById(R.id.btn_zw).setOnClickListener(this);
findViewById(R.id.btn_yw).setOnClickListener(this);
findViewById(R.id.btn_rw).setOnClickListener(this);
findViewById(R.id.btn_hw).setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_zw:
switchLanguage("zh");
restartActivity();
break;
case R.id.btn_yw:
switchLanguage("en");
restartActivity();
break;
case R.id.btn_rw:
switchLanguage("jp");
restartActivity();
break;
case R.id.btn_hw:
switchLanguage("kr");
restartActivity();
break;

default:
break;
}

}

private void restartActivity() {
finish();
Intent intent=new Intent(MainActivity.this,MainActivity.class);
startActivity(intent);

}

private void switchLanguage(String language) {
//设置应用语言类型
Resources resources = getResources();
Configuration config = resources.getConfiguration();
DisplayMetrics dm = resources.getDisplayMetrics();
if (language.equals("en")) {
config.locale = Locale.ENGLISH;
} else if(language.equals("zh")) {
config.locale = Locale.SIMPLIFIED_CHINESE;
}else if(language.equals("jp")){
config.locale = Locale.JAPAN;
//config.locale = Locale.JAPANESE;
}else if(language.equals("kr")){
config.locale = Locale.KOREA;
//config.locale = Locale.KOREAN;
}
resources.updateConfiguration(config, dm);

//保存设置语言的类型

PreferenceUtil.commitString("language", language);
}

}
PreferenceUtil 是个工具类,保存后下次进去就是之前的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 国际化 语言