我的應用程序中有兩個語言環境。我可以訪問資源,例如來自不同語言環境的字符串數組而不更改當前語言環境嗎? 我的意思是編碼,我不喜歡在設置中更改它。我可以訪問不同地區的android資源嗎?
7
A
回答
2
是的,你可以。您必須創建一個指定打算的Configuration
的新對象Resources
。
9
這裏是爲我工作,如果CMK是從當前的語言環境字符串數組和CEN是從不同勢區域設置字符串數組
cMK = getResources().getStringArray(R.array.cities);
Configuration confTmp =new Configuration(getResources().getConfiguration());
confTmp.locale = new Locale("en");
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Resources resources = new Resources(getAssets(), metrics, confTmp);
/* get localized string */
cENG = getResources().getStringArray(R.array.cities);
當前的語言環境沒有改變,代碼這是關鍵。
0
在Java 7(所以不是機器人)區域設置可以爲不同格式的資源設置和顯示不同:
Locale.setDefault(DISPLAY, Locale.PL);
Locale.setDefault(FORMAT, Locale.US);
15
更好的解決辦法是(如果你是API 17):
@NonNull
protected String getEnglishString() {
Configuration configuration = getEnglishConfiguration();
return getContext().createConfigurationContext(configuration).getResources().getString(message);
}
@NonNull
private Configuration getEnglishConfiguration() {
Configuration configuration = new Configuration(getContext().getResources().getConfiguration());
configuration.setLocale(new Locale("en"));
return configuration;
}
+0
很好的答案,謝謝。希望我能夠支持這一點,並省去與「AssetManager」混合的努力。 – brandall
+0
謝謝!這也是Google推薦的解決方案:https://code.google.com/p/android/issues/detail?id=67672 – phreakhead
相關問題
- 1. Microsoft Graph可以訪問Azure資源嗎?
- 2. 合併資源字典可以從App.xaml訪問資源嗎?
- 3. 我可以從資源外部訪問清單內的資源屬性嗎?
- 4. 我可以從MVC中的視圖訪問資源文件嗎?
- 5. 我可以使用File對象訪問資源嗎?
- 6. 我可以將資源映射到不同的控制器嗎?
- 7. 我可以從POST請求返回不同的資源嗎?
- 8. 不同的Android設備可以訪問相同的SQLite表嗎?
- 9. android:可以獲得140dpi的資源嗎?
- 10. 我可以在Android NDK中使用ifstream來訪問資產嗎?
- 11. Android:我可以從我自己的班級獲得資源嗎?
- 12. Android ID資源可以轉發嗎?
- 13. 非嵌入式資源js文件訪問資源文件(.resx)可以嗎?
- 14. 可以通過訪問NAT下的不同網絡資源來改變公共IP地址嗎?
- 15. 我可以結合衛星組件中的本地資源嗎?
- 16. 是否可以使用aws假設角色從不同地區訪問aws資源
- 17. OneDrive Webservice - 不同的用戶可以訪問我的OneDrive嗎?
- 18. 我可以使用applicationDirPath()訪問較高目錄級別的資源嗎?
- 19. 訪問資源「R.string」可變
- 20. 資源詞典不可訪問
- 21. 是JAXRS資源可以用於不同的請求嗎?
- 22. 我可以訪問嵌入資源並將其保存爲文件嗎?
- 23. Android:訪問Android中的本地資源列表
- 24. 可以訪問春天的oauth2保護資源而不訪問令牌
- 25. 訪問資源
- 26. 任何人都可以訪問我的PHP源代碼嗎?
- 27. 同一資源的問題,可通過兩條路線訪問
- 28. POST的REST輸入:相同的資源可以區分JSON和XML輸入嗎?
- 29. 多個用戶可以同時訪問開源Shiny Server嗎?
- 30. 本地UIWebViews可以訪問Web嗎?
+1的代碼! –
您的意思是:「cENG = resources.getStringArray(R.array.cities);」 ? – xVir
它改變了上下文的語言環境(例如,針對您的活動) –