1. ホーム
  2. アンドロイド

[解決済み】文字列配列リソース内の文字列をxmlで参照する。

2022-04-02 02:41:46

質問

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

preferences.xmlには、設定ファイルのレイアウトが書かれていますが、文字列配列から1つの項目を参照して、タイトルとして使用したいと思います。

どうすればよいのでしょうか?

Android developer reference を見ると、XML で単一の文字列を参照する方法はありますが、XML で配列リソースから文字列を参照する方法はないようです。

どのように解決するのですか?

要するに 無理だと思いますが、回避策はあるようです。 .

こちらのAndroid Resourceを覗いてみると。

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

配列セクション(少なくとも文字列配列)の下にある "RESOURCE REFERENCE" (as you get from an 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>

これを使うことで、"@string/earth" と "@string/moon" を普通に "android:text" と "android:title" XML フィールドで使用でき、かつ、最初に意図した目的のために配列定義を使用できることを失わないようにします。

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