Сделайте formatArg в строковом ресурсе жирным Andoid - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть строковый ресурс с аргументом формата % 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"));

Есть ли способ установить стиль для строкового аргумента в форматированном строковом ресурсе?

1 Ответ

1 голос
/ 28 апреля 2020

Вот как я пишу сообщение AlertDialog:

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

Редактировать: Или, может быть, это - это то, что вы ищете. Вот их пример:

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

textView.setText(styledText);

В этой отформатированной строке добавлен элемент <b>. Обратите внимание, что открывающая скобка HTML -экранирована, используя обозначение &lt;.

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