在我的應用程序中,我想從xml加載不同的字符串值。 幾乎像不同的語言。 我有多個客戶訪問相同的應用程序,但他們想要不同的標籤和樣式。 (一個例子是我有一個待辦事項列表選項卡,客戶端A希望它被稱爲日常任務,客戶端B希望將其稱爲任務,客戶端C需要活動列表,所有3個客戶端具有相同的功能,但需要不同的文本 。我不想爲每個客戶端創建一個新應用程序,這將是維護等等的噩夢,我也不想在每次我想更改標籤文本時都發出if語句。理想情況下,我想要的是單個應用程序爲每個客戶端加載不同的字符串是否有可能在Android中加載不同的字符串(xml)值
回答
您可以爲每個客戶端創建不同的buildType和/或productFlavor對於每個buildType/productFlavor,您可以定義一個單獨的源代碼集,這意味着每個buildType/productFlavor可以包含一個不同的strings.xml。字符串的密鑰必須相同,但每個客戶端可以有不同的字符串g文件在其buildType/productFlavor中。
約buildTypes/productFlavors更多信息:
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
http://developer.android.com/tools/building/configuring-gradle.html
例如你定義兩種口味:
android {
...
defaultConfig { ... }
signingConfigs { ... }
buildTypes { ... }
productFlavors {
clientA {
}
clientB {
}
}
}
然後你就可以在你的項目中爲每個客戶建立一個sourceset:
src/
|-> main (contains the common code/strings)
|-> clientA
| |-> res
| |-> values
| |-> strings.xml
|-> clientB
|-> res
|-> values
|-> strings.xml
在每strings.xml中,您可以添加字符串爲您的客戶。定義的字符串也將與主源代碼集的字符串合併。
你如何告訴你的應用程序使用什麼SRC。 Main/clientA/clientB?
您可以在Android Studio中構建選擇builtType/productFlavor。
要上的文件從一個特定的香味,點擊基礎上 變種IDE窗口的左側,選擇要在 修改生成變種面板的味道,如圖2的Android工作室可能在 中顯示來自「構建變體」面板中選定的 之外的其他風格的源文件錯誤,但這不會影響構建的 的結果。
http://developer.android.com/tools/building/configuring-gradle.html#workBuildVariants
你如何告訴你的應用程序使用什麼SRC。在Main/clientA/clientB之間? –
通過切換BuildVariant。 http://developer.android.com/tools/building/configuring-gradle.html#workBuildVariants – Christopher
有沒有一種方法來實現這個沒有建立味道? –
- 1. 是否有可能在字符串上重載〜運算符?
- 2. 是否有可能引用靜態字符串是Android清單中的值?
- 3. 是否有可能將xml中的字符串值強制爲bool?
- 4. 是否有可能兩個不同字符串的MD5是相同的?
- 5. JavaScript字符串中的加擾字符,是否可能具有相同的可能性?
- 6. 是否有可能匹配字符串
- 7. 是否有可能存儲枚舉值在字符串?
- 8. TinyXml可以從字符串而不是文件加載Xml嗎?
- 9. 是否有可能存儲在Java中的字符串中的布爾值
- 10. 是否有可能在Windows的Vim中找到unicode字符串?
- 11. 是否有可能在ColdFusion Fusion 8中將XML字符串轉換爲JSON
- 12. Powershell - 是否有可能避免在字符串中找到字符串
- 13. MongoDB。是否有可能使用字符串創建值
- 14. 是否有可能從資源中加載CascadeClassifier .xml文件
- 15. 是否有可能在local.properties中加載ANDROID_HOME值?
- 16. 是否有可能在Android中創建沒有xml的視圖?
- 17. 字符串在Android中不具有相同的值
- 18. 我的SHA1'd字符串是否有可能不唯一?
- 19. 可能在一個CCLabelTTF中有不同的顏色字符串?
- 20. Android - 在XML中定義的字符串中的不同顏色
- 21. 是否有可能在ocaml中重現python的字符串插值?
- 22. 是否有可能在MySQL中執行一個字符串?
- 23. 是否有可能在java中重用字符串?
- 24. 是否有可能在jsp中調用java靜態字符串?
- 25. 是否有可能爲@RequestMapping使用一個字符串而不是字符串的值?
- 26. 是否有可能加載和組合動態字符串到localStorage.getItem()?
- 27. 是否有可能在Hazelcast中加入兩個不同的IMaps?
- 28. Android字符串內容加載性能
- 29. 是否有可能從查詢字符串中獲取字典?
- 30. 是否有可能在C++中有可變數量的字符串數組?
你的意思是ü要在不同語言的應用程序的字符串值負荷? –