我有两个spannable对象用于同一字符串,并且都有不同的样式。我需要合并所有spannable对象并将所有样式显示到TextView中。
Html.fromHtml()返回和第二个返回样式span(粗体)之一返回。
我尝试了TextUtils.concate(htmlSpan, boldSpan)但它显示了同一个字符串两次,因为它附加了spannable,我想将所有样式显示为单个字符串。

最佳答案

使用SpannableStringBuilder但是可以在append方法中创建跨距

SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(String.valueOf(Html.fromHtml(stringToConvert));
sb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

然后将sb设置为您的视图
textView.setText(sb);

编辑:
我看到你编辑过的问题,上面我重写了这段代码,让它在一个字符串上应用两个spannable。我认为不能在一个字符串上合并不同的可扩展对象。我认为一种解决方法是应用一个跨距,然后转换为字符串,然后应用第二个跨距。这样它将对一个字符串应用两个跨距。或者,如果您总是需要粗体文本,可以通过xml来管理粗体文本类型

10-07 18:04