問題
Android XMLコードでそのようなことをしたいです:
<string name="title">@string/app_name test</string>
<string name="title2">@string/app_name @string/version_name</string>
コードコンパイラの最初の行については、このエラーが表示されます
指定された名前(値 '@ string/app_name test'の 'title')に一致するリソースが見つかりませんでした
そして、コードコンパイラの2行目はこのエラーを示しています
指定された名前(値 '@ string/app_name @ string/version_name'の 'title2')に一致するリソースが見つかりませんでした
質問
誰かがAndroid XMLで複数の文字列を連結する方法を知っていますか?
理論的根拠
コードの多くの場所(この場合はXML)で変数値を複製することは悪い習慣です。
私は自分で同様の操作を試みましたが、これはAndroidでは実行できないと言われました。
おもしろいのは、実際にisが可能であることを示すエラーメッセージが表示されることですが、リソースマッチングのエラーが原因で現在は不可能です。 (「title」および「title2」文字列の前に「app_name」および「version_name」文字列を定義したことを確認しますか?)
ただし、次のようなことができます。
<string name="title">%1$s test</string>
<string name="title2">%1$s %2$s</string>
<string name="app_name">AppName</string>
<string name="version_name">1.2</string>
そして、Javaコードから次のようになります:
Resources res = getResources();
String appName = res.getString(R.string.app_name);
String versionName = res.getString(R.string.version_name);
String title = res.getString(R.string.title, appName);
String title2 = res.getString(R.string.title2, appName, versionName);
Androidで文字列をフォーマットする の詳細。
お役に立てれば。