使字符串资源中的 formatArg 粗体 Android

Make formatArg in string resource bold Andoid

我有带格式参数的字符串资源 %s

<string name="string_name">Hello Mr. %s. I want to ...</string>

此字符串资源已本地化,因此长度因地区而异,并且必须在一个 TextView 中

我想制作 formatArg %s 粗体

我试过 html 标签 <string name="string_name">Hello Mr. <b>%s</b>. I want to ...</string>

我试过注释标签 <string name="string_name">Hello Mr. <annotation style="bold">%s</annotation>. I want to ...</string>

我创建了 SpannableString 并尝试将 Span 设置为此注释

并且在我将文本设置为 TextView 后对字符串参数没有任何影响

tvDescription.setText(getString(R.string.string_name, "formatArg"));

有没有办法为格式化字符串资源中的字符串参数设置样式?

这就是我设计 AlertDialog 消息的方式:

Spanned htmlAsSpanned = Html.fromHtml("Some html tags are working in here<br /><br />
<b>this is bold text</b>");

编辑:或者也许 this 就是您要查找的内容。 他们的例子是这样的:

String text = getString(R.string.welcome_messages, "Roko Spark", 5);
Spanned styledText = Html.fromHtml(text);

textView.setText(styledText);

In this formatted string, a <b> element is added. Notice that the opening bracket is HTML-escaped, using the &lt; notation.

<string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.</string>