如何在android XML中连接多个字符串?

And*_*Duś 71 android android-xml

问题
我希望能够在Android XML代码中执行类似的操作:

<string name="title">@string/app_name test</string>
<string name="title2">@string/app_name @string/version_name</string>
Run Code Online (Sandbox Code Playgroud)

关于第一行代码编译器显示此错误

找不到与给定名称匹配的资源(在'title'处,值为'@ string/app_name test')

关于第二行代码编译器显示此错误

找不到与给定名称匹配的资源(在'title2'处,值为'@ string/app_name @ string/version_name')

问题
有人知道如何在Android XML中连接多个字符串吗?

基本原理
在许多代码位(在本例中为XML)中复制变量值是不好的做法.

dbm*_*dbm 57

我自己试图做一个类似的操作,但我被告知这在Android中是不可行的.

有趣的是,你得到的是表明它确实是一个错误的消息可能的,但由于资源匹配它现在是不可能的错误.(您确定在"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>
Run Code Online (Sandbox Code Playgroud)

然后从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);
Run Code Online (Sandbox Code Playgroud)

更多关于Android中的格式化字符串.

希望这可以帮助.

  • 为清楚起见.这也有效:`<string name ="title"> @ string/app_name </ string>`. (9认同)
  • 是的,这确实是该解决方案的最大缺点:它需要Java代码才能工作. (3认同)