Можете ли вы вызвать getText () для TextView, а затем вызвать setSpan () для результирующего объекта? Я знаю, что это работает (по крайней мере, на телефонах, которые я пробовал в 2.2 и 2.3), но документ для getText () ясно говорит, что вы не можете изменить результат getText ().
setSpan конечно выглядел как модификация, но после тщательного прочтения документации я не уверен:
setSpan(Object what, int start, int end, int flags)
Attach the specified markup object to the range start…end of the text, or move the object to that range if it was already attached elsewhere.
Я могу прочесть, что это говорит о том, что единственное изменение - это объект разметки (в этом случае вы не нарушаете условие doc, касающееся отсутствия модов для Spannable).
Это плохой хак, который сломается как ветка в следующем выпуске? Или вызов setSpan () каким-то образом освобожден от документа «не меняйте это» для getText ()?
(Другое обновление: в FAQ прямо сказано сделать это: http://developer.android.com/resources/faq/commontasks.html,, поэтому я думаю, что это просто вводящий в заблуждение документ.)