strings.xml 内の文字列から別の文字列を参照するには? 質問する

strings.xml 内の文字列から別の文字列を参照するには? 質問する

以下のように、strings.xml ファイル内の別の文字列から文字列を参照したいと思います (特に、「message_text」文字列コンテンツの末尾に注意してください)。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="button_text">Add item</string>
    <string name="message_text">You don't have any items yet! Add one by pressing the \'@string/button_text\' button.</string>
</resources>

上記の構文を試してみましたが、テキストは「@string/button_text」をクリアテキストとして出力します。これは私が望んでいることではありません。メッセージ テキストには「まだアイテムがありません。[アイテムの追加] ボタンを押してアイテムを追加してください。」と出力してほしいです。

私が望むことを実現するための既知の方法はありますか?

理由:
私のアプリケーションにはアイテムのリストがありますが、そのリストが空の場合は、代わりに「@android:id/empty」TextView を表示します。その TextView のテキストは、ユーザーに新しいアイテムを追加する方法を知らせるためのものです。レイアウトを変更しても問題が起こらないようにしたいのです (そうです、私が問題の愚か者です :-)

ベストアンサー1

Java コードを使わずに、頻繁に使用する文字列 (例: アプリ名) を XML に挿入する便利な方法:ソース

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE resources [
      <!ENTITY appname "MyAppName">
      <!ENTITY author "MrGreen">
    ]>

<resources>
    <string name="app_name">&appname;</string>
    <string name="description">The &appname; app was created by &author;</string>
</resources>

アップデート:

エンティティをグローバルに定義することもできます。例:

res/raw/entities.ent:

<!ENTITY appname "MyAppName">
<!ENTITY author "MrGreen">

res/values/string.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE resources [
    <!ENTITY % ents SYSTEM "./res/raw/entities.ent">
    %ents;   
]>

<resources>
    <string name="app_name">&appname;</string>
    <string name="description">The &appname; app was created by &author;</string>
</resources>

おすすめ記事