【发布时间】:2012-05-02 10:13:04
【问题描述】:
我浏览了这个How to concatenate multiple strings in android XML?,最后有 cmets
For clarity, Its works:
<string name="title">@string/app_name</string>. – Andrzej Duś
我做了我自己的例子,但它不起作用。 Andrzej 也是如此,或者我在我的代码中做错了什么。
R.strings.bbb 应该包含"bbb aaa"
但不是"bbb aaa" 它包含"bbb @strings/aaa"
<string name="aaa">aaa</string>
<string name="bbb">bbb @strings/aaa</string>
查询:
是否可以仅在 xml 中进行一些连接,而不更改源代码?
我不想在代码中编辑的原因是因为我在xml/preferences.xml 中使用了这个字符串
例如:
<ListPreference android:key="key_bbb" android:title="@string/bbb" ....
如果你明白我的意思,这里不可能使用这样的东西
String title = res.getString(R.string.title, appName);
【问题讨论】:
-
Not afaik - 仅支持“单个引用” - 它不会将两个或多个引用(或文本)连接到单个字符串中,例如
<string name="bbb">@strings/aaa</string>应该可以工作,而<string name="bbb">test @strings/aaa</string>被解释为原始字符串(因为它不是以引用开头) - 而<string name="bbb">@strings/aaa @strings/aaa</string>会失败,因为它会被解析为 single 参考。然而,他的问题的答案是用代码来做 - 这很有效。