在我的應用程序中,我有一個特殊菜單,可以更改應用程序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()'; –