android - 处理 res/values 中的 Android 动态文本字符串

标签 android

假设我有这个字符串:

您的球员拥有良好的守门员技能和体面的人际交往能力

现在字符串中非粗体部分始终相同,运行时已知的是粗体部分。

那么我该怎么做:

您的球员拥有{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 &lt;b>%2$d new messages&lt;/b>.</string>
</resources>

稍后在代码中您可以替换

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);

关于android - 处理 res/values 中的 Android 动态文本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646639/

相关文章:

java - if/else 语句在 android 应用程序中不起作用(else 语句始终执行)

android - 自 Android 7 起的 SEGV_MAPERR

android - 有没有办法只回收回收 View 中的第一项?

Android Studio - 如何在用户 session 的 SharedPreferences 中安全地存储用户 ID?

android - 每当我打开 Android 模拟器时,Macbook Pro 就会重新启动

android - Intent 不传递我的数据

java - 在 Android 蓝牙打印机中以泰米尔语打印

java - Android SQLite 使用数组更新列

java - 为什么这个语句在java中运行良好但在android中运行不佳?

java - 更改android顶部栏的背景颜色