0
我有一個Spinner
在登錄頁面有三種語言選擇。我想在用戶選擇一種語言時假設「波斯語」語言整個應用的語言應該改變。我只能改變當前Activity
的語言。我怎樣才能改變整個應用程序的語言。如何通過單擊來改變整個應用程序的語言?
我有一個Spinner
在登錄頁面有三種語言選擇。我想在用戶選擇一種語言時假設「波斯語」語言整個應用的語言應該改變。我只能改變當前Activity
的語言。我怎樣才能改變整個應用程序的語言。如何通過單擊來改變整個應用程序的語言?
更改語言編程中的Android
這裏是改變應用程序的語言環境的適當方法:
有一些困難,你必須克服以編程方式更改語言。
1.)您的應用程序將在配置更改期間關閉或重新創建後,不記得您的語言更改。
2.)您應該根據所選語言正確更新當前可見UI。
解決方案
「LocaleHelper
」是你所需要的解決方案。您只需在應用程序的主類中初始化語言環境。之後,所有的語言變化將持續。
在Android API Version 24(Nougat)的最近更改之後,我們需要重寫attachBaseContext以反映更改。
下面的方法來改變語言的應用:
private static boolean updateResources(Context context, String language) {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
return true;
}
在下面的鏈接瞭解詳情:
做同樣的我應該需要調用每個活動這種方法嗎? – Champandorid
不止一次,但您需要照顧每個語言值文件夾中的所有字符串資源。 –
謝謝@Chetan有幫助的回答。 – Champandorid