所以,我有一条包含文字和SpannableStringBuilder
的邮件,其初始化如下:
final SpannableStringBuilder builder = new SpannableStringBuilder(message.getMessage());
默认情况下,我将字体设置为BOLD
:
builder.setSpan(new StyleSpan(Typeface.BOLD), 0, messageText.length(), 0);
但我的消息文本将被更改,例如:
你的问题:{问题} 你的回答:{answer}
{question}和{answer}是将被文本替换的对象,替换发生方式如下:
final TextObject question = objects.getQuestion();
spannable = new SpannableString(question.getText());
spannable.setSpan(new StyleSpan(Typeface.NORMAL), 0, spannable.length(), 0);
builder.replace(start, end, spannable);
文字正在替换正常,但是NORMAL字体类型不适用于它,所以我有所有文字BOLD,但我需要这部分是正常的
非常感谢任何帮助
答案 0 :(得分:0)
您必须将Spanned.SPAN_INCLUSIVE_INCLUSIVE添加为最后一个参数
spannable.setSpan(new StyleSpan(Typeface.NORMAL), 0, spannable.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
如果你想要一些粗体的部分而不是你需要具体哪个部分。 setSpan方法的第二个和第三个参数负责