![](/img/trans.png)
[英]How to change a list from one type to another with map function
[英]How to change one span type to another in Android?
為了更改跨度,您需要執行以下操作
getSpans()
獲取所需類型的所有范圍 getSpanStart()
和getSpanEnd()
查找每個范圍的范圍 removeSpan()
刪除原始范圍 setSpan()
在與舊跨度相同的位置添加新跨度類型 這是執行此操作的代碼:
Spanned boldString = Html.fromHtml("Some <b>text</b> with <b>spans</b> in it.");
// make a spannable copy so that we can change the spans (Spanned is immutable)
SpannableString spannableString = new SpannableString(boldString);
// get all the spans of type StyleSpan since bold is StyleSpan(Typeface.BOLD)
StyleSpan[] boldSpans = spannableString.getSpans(0, spannableString.length(), StyleSpan.class);
// loop through each bold span one at a time
for (StyleSpan boldSpan : boldSpans) {
// get the span range
int start = spannableString.getSpanStart(boldSpan);
int end = spannableString.getSpanEnd(boldSpan);
// remove the bold span
spannableString.removeSpan(boldSpan);
// add an underline span in the same place
UnderlineSpan underlineSpan = new UnderlineSpan();
spannableString.setSpan(underlineSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
SpannableString
時使用boldString.toString()
。 您將使用原始的boldString
來獲取跨度范圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.