我有這個設置部分,我允許用戶更改應用程序中顯示的語言。當用戶選擇不同的語言時,活動被重新加載,以便可以應用語言的改變。但問題是,當用戶在改變語言後點擊右鍵時,後臺活動中顯示的語言仍然是相同的。 所以我的問題是,當我回到背景上的某些活動時,應該如何應用語言更改?我想我應該做些什麼來檢測onResume
方法的變化,但我不確定它是什麼。如果您有任何建議,請讓我知道。 謝謝。Android - 點擊後改變語言
回答
經過多次嘗試,我找到了解決我的問題。在我onCreate
方法,我得到一個包含當前語言的價值SharedPreferences
,並獲得當前的語言:
SharedPrefrences languagepref = getSharedPreferences("language",MODE_PRIVATE);
String language = languagepref.getString("languageToLoad", Locale.getDefault().getDisplayLanguage());
然後,在我的onResume
方法,我提到變量language
在上面的值賦給一個本地變量,並更新language
的值。然後,我比較這兩個變量 - 如果它們是不同的,我會破壞當前活動並啓動另一:
@Override
public void onResume(){
super.onResume();
String oldLanguage = language;
language = languagepref.getString("languageToLoad", Locale.getDefault().getDisplayLanguage());
if (!oldLanguage.equals(language)){
finish();
startActivity(getIntent());
}
}
瞧,那沒有的伎倆!
我會建議使用SharedPreferences。您可以在其中存儲一個包含相關值的lang鍵,並在必要時進行更新。在您的onResume()方法中,您可以獲取lang值,然後根據存儲的值填充視圖。
SharedPreferences sharedPreferences;
sharedPreferences = this.getSharedPreferences("MyActivity", Activity.MODE_PRIVATE);
String lang = sharedPreferences.getString("lang", "en-GB");
SharedPreferences.Editor editor;
editor = sharedPreferences.edit();
editor.putString("lang", "en-US").commit();
這是您需要進行的基礎知識。
謝謝,我儘量按照您告訴我的方式嘗試,但語言仍然沒有「不會改變背景活動。 –
你在哪裏創建你的觀點並設置他們的文本? –
您是否嘗試在更改完成後重新啓動活動?
你可以簡單地使用
finish();
startActivity(getIntent());
刷新只要檢測偏好變化的活動。
我假設你的意思是刷新'onResume'中的活動?那麼我試過了,由於整理和開始的無限循環,活動很難開始。 –
除非你有任何保存的變量,你可以使用'onCreate(null);'。這應該也會重新啓動您的活動。 – Traxex1909
- 1. 語言改變對第二點擊
- 2. 改變語言
- 3. 單擊按鈕更改語言:Android
- 4. 按鈕點擊時改變文化(語言)
- 5. 更改應用程序語言在android中的按鈕點擊
- 6. localizerouter不改變語言後發佈
- 7. 旋轉後的Android語言更改
- 8. 運行系統語言改變的Android
- 9. Android改變語言配置佈局
- 10. Android更改語言
- 11. Android - 更改語言環境(語言)
- 12. 改變點擊
- 13. 如何改變語言笨
- 14. 笨改變語言form_validation_lang
- 15. 用java改變語言
- 16. Django i18n不改變語言
- 17. Magento不改變語言
- 18. 語言不會改變
- 19. 如何改變語言
- 20. Vaadin改變按鈕樣式後,點擊
- 21. Google地圖。點擊後改變風格
- 22. NSSwitchCell在點擊後不改變值
- 23. input [type =「submit」] - 點擊後改變背景
- 24. python button點擊後改變文字
- 25. 更改Android語言監聽
- 26. android更改語言日期
- 27. Android - 動態更改語言
- 28. Android:更改語言依據
- 29. 防止語言環境更改後的應用語言更改
- 30. ANDROID:點擊按鈕改變TextView
在ActivityDestination中監聽** onResume **方法或在ActivitySource中監聽** onBackPressed **。 – 2013-07-22 09:26:58
如果您使用完成()返回上一個活動 嘗試使用意圖,而不是使用新語言刷新以前的活動 – user1283633