Autor

Alejandro Alcalde

Data Scientist and Computer Scientist. Creator of this blog.

Más artículos de Alejandro Alcalde | Porfolio

Índice

Para una aplicación que estoy haciendo, me hacía falta ser capaz de mostrar un enlace al usuario de forma similar al que se crean en las páginas webs con la etiqueta <a href=””></a>.

La cadena de texto con el enlace en cuestión reside en el archivo de recursos string.xml. En un principio pensé que me bastaría usar la propiedad android:autoLink="web" en el layout.xml de la siguiente forma:

layout:

<TextView
    <!-- .... -->
    android:autoLink="web"
    <!-- .... --> />

string:

<string name="aboutAuthor">Developed by <a href="http://elbauldelprogramador.com">Alejandro Alcalde.</a></string>

Pero la propiedad autoLink="web", funciona únicamente cuando el texto al que hace referencia contiene explícitamente la dirección, es decir, con esta cadena de texto sí funcionaría:

<string name="aboutAuthor">Developed by http://elbauldelprogramador.com</string>

Para conseguir hacer funcionar el primer ejemplo hay que hacer uso del método setMovementMethod() de la clase TextView:

final TextView author = (TextView) view.findViewById(R.id.tv_about_athor);
author.setMovementMethod(LinkMovementMethod.getInstance());

Con el código anterior se consigue el comportamiento deseado:

Los dos primeros enlaces están creados con el método setMovementMethod(), los otros dos con android:autoLink="web".

¿Has visto algún error?: Por favor, ayúdame a corregirlo contactando conmigo o comentando abajo.

Categorías: