How to concatenate multiple strings in android XML? [duplicate]

余生颓废 提交于 2019-11-28 19:28:42

问题


Problem
I would like to be able to do something like that in Android XML code:

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

Regarding first line of code compiler shows this error

No resource found that matches the given name (at 'title' with value '@string/app_name test')

and regarding second line of code compiler shows this error

No resource found that matches the given name (at 'title2' with value '@string/app_name @string/version_name')

Question
Does anybody know how to concatenate multiple strings in Android XML?

Rationale
It is bad practice to duplicate variable values in many places of code (in this case XML).


回答1:


I've tried to do a similar maneuver myself but I was told this is not doable in Android.

The interesting thing is that you get an error message that indicates that it indeed is possible but due to errors in resource matching it's not possible right now. (Are you sure you have defined the "app_name" and "version_name" strings before the "title" and "title2" strings?)

You can however do something like:

<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>

And then from Java code do something like:

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);

More about formatting strings in Android.

Hope this helps.



来源:https://stackoverflow.com/questions/5764548/how-to-concatenate-multiple-strings-in-android-xml

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!