2011-01-31 21 views
5

Quiero analizar un texto para algunos enlaces (números de URL y teléfono) y he probado códigogetSpans androide parámetros

String message = "text text www.evz.ro test 1234567 test www.220.ro test Http://emm.ro"; 
SpannableString ss = new SpannableString(message); 
Linkify.addLinks(ss, Linkify.ALL); 
Object[] spans = ss.getSpans(0, ss.length() - 1, null) 

Qué parámetros debo usar en lugar de null? ¿Qué tipo de clase? Sólo necesito saber dónde comienza el enlace y dónde termina

Respuesta

11

encontró la solución. aquí está:

SpannableString spannableString = new SpannableString(str); 
Linkify.addLinks(spannableString, Linkify.ALL); 
URLSpan[] spans = spannableString.getSpans(0, spannableString.length() , URLSpan.class); 
+0

Observe que está utilizando string.length() aquí, no string.length() - 1. Eso solucionó un problema que estaba teniendo, pero parece contradecir la documentación, que dice que el segundo parámetro es un índice final, no una longitud. Weird ... –

+0

Piensa como si ese índice se refiere al espacio entre letras. Por ejemplo: la cadena 'abc' tiene 4 espacios (| a | b | c |). Los espacios están numerados de 0 a 3, por lo que el índice del último coincide con la longitud del Strnable span (valor 3 que se refiere al 4º elemento). –