问题
我希望能够在Android XML代码中做类似的事情:
<string name="title">@string/app_name test</string>
<string name="title2">@string/app_name @string/version_name</string>
关于第一行代码编译器显示此错误
找不到与给定名称匹配的资源(在'title'处,值为'@ string / app_name test')
关于第二行代码编译器显示此错误
找不到与给定名称匹配的资源('title2'的值为'@ string / app_name @ string / version_name')
问题
有人知道如何在Android XML中连接多个字符串吗?
原理
在许多代码位置复制变量值是不好的做法(在本例中为XML)。
答案 0 :(得分:55)
我自己尝试过类似的操作,但有人告诉我这在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);
有关formatting strings in Android的更多信息。
希望这有帮助。