在我的应用程序中,我有一个特殊菜单,可以更改应用程序language.I从项目API(通过解析JSON)和项目值xml获取标签。可以更改android应用程序语言,而无需重新启动应用程序和сhangibg系统语言。更改Android应用程序语言
6
A
回答
7
插入此方法并调用它来更改语言。
private void setLocale (String localeCode , Bundle b){
Log.d(TAG+"set location function: "+localeCode);
locale = new Locale(localeCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
getApplicationContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
UserDetail.this.getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
onCreate(null);
}
在切换变化或任何像这样的选择期权价值:
setLocale("en-us",savedInstanceStat); // for english
setLocale("ar",savedInstanceStat); // for arabic
3
您可以使用切换按钮更改语言,并在您的应用程序中设置所选语言,而无需关闭应用程序。
1.您会检查选择哪种语言?
String prefsToogleStr = getSharePrefrenceLocale();
Log.d("tag", "CtrlDashBoard prefsToogleStr" + prefsToogleStr);
if (prefsToogleStr.equalsIgnoreCase("en")) {
toggleLocaleButton.setChecked(true);
CommonMethod.setLocale("en", viewDashBoard);
} else {
CommonMethod.setLocale("ur", viewDashBoard);
toggleLocaleButton.setChecked(false);
}
////////////////////////////////////////
public String getSharePrefrenceLocale() {
SharedPreferences prefs = viewDashBoard.getSharedPreferences(
viewDashBoard.getPackageName(), ViewDashBoard.MODE_PRIVATE);
return prefs.getString("locale", "en");
}
在切换按钮检查更改侦听
2.change语言:
// Locale Toogle
toggleLocaleButton
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (buttonView.isChecked()) {
setSharePrefrenceLocale("en");
CommonMethod.setLocale("en", viewDashBoard);
} else {
setSharePrefrenceLocale("ur");
CommonMethod.setLocale("ur", viewDashBoard);
}
dialog.dismiss();
}
});
}
//////////////////////////// /////////
public void setSharePrefrenceLocale(String locale) {
SharedPreferences prefs = viewDashBoard.getSharedPreferences(
viewDashBoard.getPackageName(), ViewDashBoard.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("locale", locale);
editor.commit();
}
///////// /////////////////////////////
主要方法:拨打
public static void setLocale(String localeName, Context context) {
Locale locale = new Locale(localeName);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
}
我希望你明白。这对你有用。
+0
嘿感谢分享这一点,但它没有做任何事情,即使重新启动应用程序 – Tony
相关问题
- 1. 更改Android应用程序的语言
- 2. Android - 更改应用程序本身的语言环境语言
- 3. 作为设备语言更改更改应用程序语言
- 4. 更改ios应用程序的语言
- 5. 更改应用程序语言
- 6. 更改网络应用程序语言
- 7. 从应用程序更改语言?
- 8. 更改语言在应用程序
- 9. 在应用程序中更改语言
- 10. 我的Android应用程序更改默认语言为英语
- 11. 在Android中使用微调器更改应用程序语言
- 12. 更改应用程序的语言环境而不更改Windows语言环境
- 13. Android应用程序更改语言功能的代码错误
- 14. Android如何在运行时更改应用程序语言
- 15. 我可以更改android应用程序的语言吗?
- 16. 在Android应用程序中更改语言
- 17. 更改语言buttonclick在Android应用程序
- 18. 更改应用程序语言在android中的按钮点击
- 19. 在Android应用程序中更改语言
- 20. 在整个Android应用程序中更改语言
- 21. Android更改语言
- 22. 在Android应用程序中更改语言时的应用程序状态更改
- 23. 如何在首选项更改或语言更改(语言环境)上刷新Android应用程序
- 24. 通过更改Android中的应用程序语言更改默认手机语言?
- 25. 如何根据应用语言更改youtube android API语言
- 26. 默认将应用程序语言更改为英语
- 27. Android - 更改语言环境(语言)
- 28. 防止语言环境更改后的应用语言更改
- 29. 更改应用语言更改的文本框输入语言
- 30. 更新应用程序内语言更改后的所有UIViewController
'的OnCreate(空)'会导致异常。你需要调用'recreate()'; –