2012-09-26 11 views
8

Este es un ejemplo.¿Cómo hacer texto multidivisible?

String source = "This is example text"; 
Spannable out = new SpannedString(source); 
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); 
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
out.setSpan(boldSpan, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

//someTextView.setText(out); 


Resultado esperado: T hi s es e Xam texto PLE ("Hola" & "Xam" son negrita)
Resultado real:         Este es e Xam PLE texto (solo funciona el último método de setSpan y el negrita es solo "xam")


¿Cómo hacer que el texto se pueda dividir por múltiples? ¿Es posible?
Tal vez el problema esté en Spannable.SPAN_EXCLUSIVE_EXCLUSIVE flag? Gracias.

Respuesta

20

Creo que necesita un nuevo StyleSpan para cada uno.

String source = "This is example text"; 
Spannable out = new SpannedString(source); 
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); 
StyleSpan boldSpan2 = new StyleSpan(Typeface.BOLD); 
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
out.setSpan(boldSpan2, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

no lo he probado a cabo sin embargo.

+0

Gracias. Es trabajos :) – user1523690

+0

No hay problema. Alegra oírlo. :) Acepte la respuesta por favor si está satisfecho con mi solución. – MillyMonster

+0

Todavía no he llegado a este problema, estaba contenta de ver las preguntas ... Pero esto también me habría dejado perplejo. – WORMSS

0

La razón es que cada texto en negrita debe ser representado por un StyleSpan. La razón de la suya es la misma que la reasignación de un valor.

Cuestiones relacionadas