2012-06-06 32 views
1

当我在一个charsequence中设置一个跨度时,然后在文本视图中设置文本的罚款,它出来是正确的。我正在使用这个charsequence中的多个跨度

Ssb.setSpan(新StyleSpan(Typeface.ITALIC),start,end,1);

然后设置TextView的文本。

但是,当我从文本视图中获取文本,然后使用tv.getText()从它获取文本;它返回预期的CharSequence,但是当我在cs中的其他位置设置跨度时,设置文本时的另一个跨度不在那里。

对不起,缺乏代码。我在家里没有适当的互联网接入,所以即时通讯从我的手机发布。

+0

你有没有连接到任何TextView的过滤器?另外,如果您不修改文本,只是转身再设置一次(例如'tv.setText(tv.getText());'),原始跨度是否仍会消失? –

+0

当我这样做时,它不会删除跨度。 – FabianCook

回答

1

试试这个

Spannable mSpannable = textview.getText(); // will hold old spans. 
mSpannable.setSpan(new StyleSpan(Typeface.ITALIC), start, end, 1); // do some new span 
+0

谢谢。我之前移动我的代码来设置文本。这只是我做这件事的方式。这基本上是如何即时做到这一点。只需要弄清楚如何将其保存到共享首选项中。 – FabianCook