2017-08-30 108 views
0

我試圖在Android Studio的資源中設置一個帶有變量的XML屬性,但沒有運氣。使用變量設置XML屬性

事情是這樣工作的:

<resources> 
    <string name="Key">@string/Key</string> 
</resources> 

但是這樣的事情並不:

<resources> 
    <string name="Key" custom-attribute="@string/Key"/> 
</resources> 

你如何使用XML屬性變量?

這不是問題Android xml reference within xml doesn't work

第一個示例正常工作,我可以使用變量設置字段值。第二個例子不起作用,我無法設置屬性。

+0

u能請詳細說明你的問題嗎?這個問題的用例是什麼?你在哪裏使用這個?可能有另一種方法來解決你的實際問題。 –

+0

我的用例需要Salesforce Mobile SDK中的不同服務器URL。這裏是他們的文檔:https://developer.salesforce.com/docs/atlas.en-us.mobile_sdk.meta/mobile_sdk/oauth_custom_login_host.htm 所以我想每個環境的服務器url更改。我將服務器url設置爲字符串中的變量。 –

+0

您是否在xml文件夾中創建server.xml文件。您必須創建一個名稱爲xml的新目錄,因爲默認情況下它不存在。在文檔中,您必須在xml中創建

回答

0

在這裏我們可以定義res /文件夾中的資源。 您可以創建自己的文件並使用下面的示例。 價值的東西不會工作。

<resources> 
<string name="button">Try Again</string> 
<dimen name="margin">56dp</dimen> 
<bool name="isCorrect">false</bool> 
<color name="background">#fff</color> 
<drawable name="icon">@drawable/ic_about_us</drawable> 
<integer name="count">56</integer> 
<string-array name="days"> 
     <item>Monday</item> 
     <item>Sunday</item> 
</string-array> 
</resources> 

而且通過R.id.nameOfResource Here使用更加去探索它們。 希望這有助於。

更新:我們也可以在build.gradle腳本中定義像這樣的資源。

android { 
    buildTypes.each { 
     it.resValue 'string', 'serverLink', "https://mylink.com" 
    } 
} 
+0

對不起,沒有看到這將如何設置XML屬性。對於像。希望從變量中獲取顏色屬性。 –

+0

這是無效的,我猜。因爲我們不能像這樣定義一個字符串或任何類型的資源。即使定義我們自己的樣式屬性,我們也不能給字符串資源一種顏色和字符串值。 –

+0

字符串和顏色就是例子。它可能是 只是尋找將XML字段上的屬性設置爲定義的變量。 –

0
<resources> 
    <string name="Key">Some Value</string> 
</resources> 

應該給你同樣的結果:

<resources> 
    <string name="Key" value="Some Value"/> 
</resources> 

因爲,我會建議使用第一個例子是可以正常工作的。

+0

使用鍵和值可能是一個錯誤作爲例子。如果你想設置一個自定義屬性就是我正在尋找的。價值可以是任何東西,比如Custom-Attr。 –

0

試試這個:

<string name="Key1">Some Text</string> 
<string name="Key2">@string/Key1</string> 

更新:

<string name="Key1">Some Text</string> 
<string name="Key2"> 
    <some-attribute>@string/Key1</some-attribute> 
</string> 
+0

這適用於XML值,但不適用於設置屬性 –

+0

@DanCorey更新。 –

+0

謝謝,但字段和屬性不是一回事。查看https://www.w3schools.com/xml/xml_dtd_el_vs_attr.asp –