假设我有这样一个字符串:
你的球员有良好的守门员技能和体面的人际技能
现在字符串中不加粗的部分总是相同的,在运行时知道的是加粗的部分。
那么我该怎么做呢?
你的球员有{var1}守门员技能和{var2}人员技能
然后在运行时用正确的值填充这些变量?
我不想连接这样的字符串:
"You player has a" + var1 + "keeper skill and a" + var2 + "people skill"
您需要查看Android字符串资源指南。有一种方法可以提供静态字符串,以后可以用变量格式化。
http://developer.android.com/guide/topics/resources/string-resource.html FormattingAndStyling
您将定义像
这样的字符串<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
在后面的代码中你可以替换
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
in Strings.xml
You player has a %1$d keeper skill and a %2$d people skill
在java中getString(R.string.article_stats, var1, var2);
是,参见android devguide
如果您需要使用String.format(String, Object...)
格式化字符串,那么您可以通过将格式参数放在字符串资源中来实现。例如,使用以下资源:
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
在这个例子中,格式字符串有两个参数:%1$s是一个字符串,%2$d是一个十进制数。您可以使用应用程序中的参数格式化字符串,如下所示:
Resources res = getResources();
String text = String.format(
res.getString(R.string.welcome_messages),
username, mailCount);
在strings xml中,你必须在CDATA标签中定义html语法,如
<![CDATA[<b> %1$s bought </b>, last purchased from %2$s <b> %3$s </b>]]>
和Java类
String detail = String.format(getString(R.string.detail),15,"New Delhi","23 mins ago");
detailView.setText(Html.fromHtml(detail ));