Android: Convertir URLs en enlaces dentro de un TextView
Si el texto que vamos a mostrar en un TextView contiene código HTML, se visualizarán correctamente los enlaces, negritas, etc. Deberemos hacerlo de así desde código:
textView1.setText( Html.fromHtml("Mi <strong>página web</strong>: " + "<a href="http://jonsegador.com">http://jonsegador.com</a>") ); |
En cambio, si el texto no está en formato HTML pero contiene URLs (sin las etiquetas <a>), podemos convertir a enlace cualquier URL que aparezca en el texto.
Para ello, utilizaremos el siguiente atributo del TextView:
android:autoLink="web" |
Este atributo buscará todas las URLs dentro del texto y los convertirá a enlace. No hace falta indicar el atributo android:linksClickable ya que por defecto serán clickables.
El TextView completo quedaría así:
<TextView android:id="@+id/TextView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Mi página web: http://jonsegador.com" android:autoLink="web"> </TextView> |
También lo podemos hacer vía código, sin necesidad de indicar el atributo android:autoLink en el layout. Para ello utilizaremos Linkify:
final TextView textView1 = (TextView) findViewById(R.id.TextView1); textView1.setText("Mi página web: http://jonsegador.com"); Linkify.addLinks(textView1, Linkify.WEB_URLS); |
Si además queremos cambiar el color del enlace, incluiremos el siguiente atributo en el TextView:
android:textColorLink="@color/link_color" |
El TextView final quedaría así:
<TextView android:id="@+id/TextView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Mi página web: http://jonsegador.com" android:autoLink="web" android:textColorLink="@color/link_color" > </TextView> |
Muchas gracias, me sirvió mucho, sobre todo porque está muy bien explicado. Saludos
Excelente artículo, como siempre.
¡Se agradece Jon! 🙂
Buena, muchas gracias
Gracias por compartir tus conocimientos sobre este tema. Sin duda este blog será de mucha ayuda para todos los que formemos parte del sector. Buen trabajo