final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD);
final SpannableString ss = new SpannableString("How to " + text + " in " + type);
ss.setSpan(bss, 7, text.length() + 7, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
ss.setSpan(bss, 7 + text.length() + 4, ss.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(ss);
我想text
和type
BOLD 。但只有类型是BOLD。
我错过了什么?
答案 0 :(得分:7)
根据文件:
setSpan(Object what, int start, int end, int flags)
将指定的标记对象附加到文本的范围开始...结尾,或者如果对象已经附加到其他位置,则将对象移动到该范围。
StyleSpan
只能在Spannable
中使用一次。您需要为每个text
和type
答案 1 :(得分:0)
你应该创建如下的对象。
ss.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 7, text.length() + 7, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
ss.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 7 + text.length() + 4, ss.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(ss)
答案 2 :(得分:0)
更好的解决方案是使用静态方法而不是创建多个对象:
CharacterStyle.wrap(CharacterStyle c)