2012-03-15 5 views
7

Sto progettando un App, dove c'è TextView, e sulla base di alcune condizioni di controllo, voglio fare i numeri di collegamenti/numeri di telefono nella cliccabile TextView in Java lato. Posso fare questo, non voglio per renderlo cliccabile di default che è fatto attraverso la creazione di file XMLSet link cliccabile in Java-Android

android:autoLink="all" 

Quello che ho già provato: Creare TextView regolare e non imposto autoLink = "all" ,

 TextView myView = 
       (TextView)view.findViewById(R.id.thisIstheTextView); 
     myView .setLinksClickable(true); 

cercato anche:

 myView .setMovementMethod(LinkMovementMethod.getInstance()); 

Nessuno del codice Java sopra funziona, io non voglio un TextView xml predefinito con AutoLink abilitato, voglio cambiare il comportamento TextView in codice Java basato su condizioni if ​​(). Non c'è errore nel mio codice, ma non sono in grado di ottenere ciò che voglio. Puoi per favore condividere le tue conoscenze. Grazie.

+0

http://stackoverflow.com/questions/9380349/html-a-tag-not-working-in-android-textview/9380417#9380417 –

risposta

5

Linkify.addLinks (MyView, Linkify.ALL); risolto il problema.

13

Usa setAutoLinkMask (int mask).

I possibili valori che è possibile combinare per mask sono quelli definiti per la classe Linkify.

+0

Grazie. Anche se questo è il metodo equivalente di Android: autoLink, non funziona ancora. –

+9

Mi dispiace non essere d'accordo - funziona. Devi chiamarlo prima di una chiamata a 'setText (...)' sebbene, non cambierà i link in un 'TextView' dopo che ha già del testo. La tua domanda ha chiesto su come modificare il comportamento di un 'TextView' a seconda di ciò che si voleva mostrare gli elementi come cliccabili/collegate (numeri di telefono, ecc) "sulla base di alcuni controllato condizione". Supponevo che avresti fatto il controllo, quindi impostare la maschera del collegamento automatico e quindi impostare il testo. – Squonk

+1

costante Utilizzare Linkify come questo textView.setAutoLinkMask (Linkify.WEB_URLS); –