XMLを使用して文字列配列リソース内の文字列を参照する 質問する

XMLを使用して文字列配列リソース内の文字列を参照する 質問する

メニューに表示される項目を有効/無効にできる設定があります。項目は 17 個あります。これらの 17 個の項目のタイトルを含む文字列配列を values/arrays.xml に作成しました。

設定ファイルのレイアウトを含む preference.xml があり、文字列配列から 1 つの項目を参照してタイトルとして使用したいと考えています。

これどうやってするの?

Android 開発者リファレンスでは、XML を使用して単一の文字列を参照する方法は説明されていますが、XML 内の配列リソースから文字列を参照する方法は説明されていません。

ベストアンサー1

要するに、それはできないと思いますが、回避策があるようです:

ここで Android リソースを見てみましょう:

http://developer.android.com/guide/topics/resources/string-resource.html

配列セクション (少なくとも文字列配列) の下にある「リソース参照」(XML から取得) では、個々の項目のアドレス指定方法が指定されていないことがわかります。XML で「@array/yourarrayhere」を使用することもできます。設計時に最初の項目が取得されることはわかっています。ただし、たとえば 2 番目の項目を使用する場合は、これは実用的ではありません。

ただし、実行できるトリックがあります。こちらをご覧ください:

XML 配列内の XML 文字列を参照する (Android)

配列の定義内で独立した文字列をアドレス指定することで、配列の定義を「ごまかす」ことができます (実際にはそうではありません)。たとえば、strings.xml では次のようになります。

<string name="earth">Earth</string>
<string name="moon">Moon</string>

<string-array name="system">
    <item>@string/earth</item>
    <item>@string/moon</item>
</string-array>

これを使用すると、「android:text」および「android:title」XML フィールドで「@string/earth」および「@string/moon」を通常どおり使用できますが、当初意図した目的のために配列定義を使用する機能は失われません。

私の Eclipse では動作するようです。試してみて、動作するかどうか教えてください。:-)

おすすめ記事