2017-08-30 6 views
0

私は運がないAndroidスタジオのリソースに変数を使用して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と同じ質問ではありません。

最初の例は正しく動作し、フィールド値を設定する変数を使用できます。 2番目の例は機能せず、属性を設定できません。

+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

server.xmlファイルをxmlフォルダに作成していますか。デフォルトでは存在しないので、xmlという名前の新しいディレクトリを作成する必要があります。ドキュメントではをXMLに作成する必要があります。 –

答えて

0

res/folderにリソースを定義することができます。 独自のファイルを作成し、以下の例を使用することができます。 値は機能しません。

<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スクリプトで定義することもできます。ので、私はそれが正しく動作するように第1の例を使用することをお勧めしますその

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

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

申し訳ありませんが、これによってどのようにXML属性を設定できるのかわかりません。 のようなものに対しては、色属性を変数から取得させたい。 –

+0

これは正しくないと思います。文字列やこの種のリソースを定義することはできません。独自のスタイル属性を定義していても、文字列リソースに文字列の色と値の型を与えることはできません。 –

+0

文字列と色は例です。 XMLフィールドの属性を定義済みの変数に設定することを探しているだけです。

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

はあなたと同じ結果を与える必要があります。

+0

キーと値の使用は、例として間違いであった可能性があります。カスタム属性を設定する場合は、私が探しているものです。 Valueの代わりに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をご覧ください。 –

関連する問題