バックグラウンド
SpannableStringBuilder を使用して複数のものを追加するとします。そのうちの 1 つは、strings.xml ファイルからフォーマットした文字列で、内部にスパンがあります。
SpannableStringBuilder stringBuilder = new SpannableStringBuilder ();
stringBuilder.append(...)...
final SpannableString span = new SpannableString(...);
span.setSpan(new BackgroundColorSpan(0xff990000), ...,...,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
stringBuilder.append(getString(R.string.string_to_format, span));
stringBuilder.append(...)...
textView.setText(stringBuilder);
問題
悲しいことに、そのような文字列をフォーマットするとスパン自体が削除されるため、私の場合、背景色のテキストはありません。
これは、「getString」の行で発生します。
私が試したこと
スパンだけを(「getString」なしで)追加すると、正常に機能します。
Html.fromHtml も調査しようとしましたが、とにかくテキストの背景色をサポートしていないようです。
質問
スパンを持つ文字列をフォーマットすることは可能ですか?
より具体的には、入力は、strings.xml ファイルからの文字列 A で、プレースホルダーのみ (特別な HTML タグはありません) と、実行時にプレースホルダーを置き換える別の文字列 B です。文字列 B は、それ自体の部分的なテキストを強調表示する必要があります。
私の場合、強調表示されたテキストは、文字列 B 内で検索するものです。