Inserire un link cliccabile in una TextView Android

Vi è mai capitato di dover inserire un collegamento ipertestuale (link) all’interno di un testo su Android? Se sì, ho qualche piccolo consiglio da darvi, altrimenti scopriamo insieme come fare.

Il primo passo è capire che tipo di link vogliamo inserire: un intero URL o un testo personalizzato? Giusto per essere chiari, per intero URL intendo questo: http://www.google.it/, mentre per testo personalizzato intendo questo: vai su Google.

Intero URL

Creiamo una semplice TextView nel nostro layout e come testo insieriamo:

Naviga su <a href="http://www.google.it/">http://www.google.it/</a>

oppure

Naviga su http://www.google.it/

Adesso aggiungiamo questo attributo alla TextView:

android:autoLink="web"

Così facendo i nostri link diventeranno blu e cliccabili come in una normale pagina web.

Testo personalizzato

Creiamo nuovamente una TextView e come testo proviamo ad inserire:

Vai su <a href="http://www.google.it/">Google</a>.

A questo punto, all’interno del codice Java della nostra vista, dopo aver castato la nostra TextView, applichiamo questa proprietà:

TextView textView = (TextView) findViewById(R.id.testopersonalizzato);
textView.setMovementMethod(LinkMovementMethod.getInstance());

In questo modo otterremo un testo personalizzato cliccabile in puro stile HTML. Fate solamente attenzione a non utilizzare entrambi i metodi sulla stessa TextView, infatti l’attributo autoLink andrà a sovrascrivere il setMovementMethod disabilitando il suo funzionamento.

Un’ultima alternativa può essere anche una via del tutto programmatica senza l’utilizzo di layout:

textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(Html.fromHtml("Vai su <a href=\"http://www.google.it\">Google</a>"));

E voi quale preferite? Avete altri metodi da suggerire?