78

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

<string name="title">@string/app_name test</string>
<string name="title2">@string/app_name @string/version_name</string>

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

未找到与给定名称匹配的资源(在“标题”处,值为“@string/app_name test”)

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

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

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

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

4

1 回答 1

59

我自己也尝试过类似的操作,但有人告诉我这在 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>

然后从 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 中格式化字符串

希望这可以帮助。

于 2011-04-23T14:54:39.253 回答