我的應用支持3種語言,用戶可以在這些選項之間進行選擇。 當我將設備語言環境更改爲支持的其中一種語言時,UI語言會自動更改,問題是如果用戶已在應用程序中選擇了我支持的3種語言之一,我不希望它更改。防止語言環境更改後的應用語言更改
如何防止這種自動語言更改?
我的應用支持3種語言,用戶可以在這些選項之間進行選擇。 當我將設備語言環境更改爲支持的其中一種語言時,UI語言會自動更改,問題是如果用戶已在應用程序中選擇了我支持的3種語言之一,我不希望它更改。防止語言環境更改後的應用語言更改
如何防止這種自動語言更改?
當用戶在應用程序中選擇它時,將語言環境保存到SharedPreference。並添加您的代碼默認支持的語言環境。
String userLocale = App.getSharedPreferences().getString(SELECTED_LOCALE,"your_default_string");
在你Application.class onCreate方法添加此塊:如果用戶改變了語言
Locale locale = new Locale(userLocale) //
Resources resources = getResources();
Configuration configuration = resources.getConfiguration();
configuration.setLocale(locale);
謝謝,我的意思是我的區域設置的場景,然後用戶最小化我的應用程序並更改設備區域並恢復我的應用程序 – Sharas
@Sharas將此添加到onConfigurationChanged()您的活動 –
我所做的是對我的喜好更新標誌指示,並檢查其對活動的onResume()
值如果它重新啓動它。
活動的onCreate()
我將語言更新爲存儲的首選項。
你不應該。使用手機的語言環境,沒有很好的理由來覆蓋它。 –