Android: Convertir URLs en enlaces dentro de un TextView

septiembre 8, 2017

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>

Tags ; , , ,

2 comentarios

    Juan Carlos Jul 17, 2018

    Muchas gracias, me sirvió mucho, sobre todo porque está muy bien explicado. Saludos

    Responder
    Linube Sep 25, 2018

    Excelente artículo, como siempre.
    ¡Se agradece Jon! 🙂

    Responder

Escribe un comentario

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.