Autore Topic: TextView come link  (Letto 392 volte)

Offline Neoxxx

  • Translate Team
  • Utente junior
  • **
  • Post: 114
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
TextView come link
« il: 23 Febbraio 2015, 17:32:15 CET »
0
Ho un oggetto di tipo TextView che è un link, vorrei fare in modo che questa stringa sia colorata in modo che cliccandoci sopra mi vada ad aprire il link nel browser. come posso fare? grazie

Offline arlabs

  • Utente normale
  • ***
  • Post: 434
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:TextView come link
« Risposta #1 il: 24 Febbraio 2015, 10:10:35 CET »
0
Io ho fatto così. E' il modo più semplice.
Funziona anche con testi più estesi, ti cerca tutti i link nel testo e li rende cliccabili.

Codice (Java): [Seleziona]
         TextView txtView = (TextView) findViewById(R.id.txt_vuew);
         txtView.setText(linkText);
         Linkify.addLinks(linkText, Linkify.ALL);

Ciao

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 716
  • Respect: +151
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:TextView come link
« Risposta #2 il: 24 Febbraio 2015, 12:34:27 CET »
0
Alternativa:

Codice (Java): [Seleziona]
String mMessage = "<a href=\"http://tuo.url/tua.pagina.html\">Tuo testo</a>";
TextView txtView = (TextView)findViewById(R.id.id_textview);
txtView.setText(Html.fromHtml(mMessage, this, null));
txtView.setMovementMethod(LinkMovementMethod.getInstance());
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline Neoxxx

  • Translate Team
  • Utente junior
  • **
  • Post: 114
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
Re:TextView come link
« Risposta #3 il: 24 Febbraio 2015, 17:40:45 CET »
0
Alternativa:

Codice (Java): [Seleziona]
String mMessage = "<a href=\"http://tuo.url/tua.pagina.html\">Tuo testo</a>";
TextView txtView = (TextView)findViewById(R.id.id_textview);
txtView.setText(Html.fromHtml(mMessage, this, null));
txtView.setMovementMethod(LinkMovementMethod.getInstance());

Mi dice che il metodo fromHtml non esiste  :-o

EDIT: Avendo il link in una variabile come posso metterlo dentro mMessage?
« Ultima modifica: 24 Febbraio 2015, 17:56:22 CET da Neoxxx »

Offline arlabs

  • Utente normale
  • ***
  • Post: 434
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:TextView come link
« Risposta #4 il: 24 Febbraio 2015, 18:26:45 CET »
0
Puoi definire meglio cosa intendi con avere il link in una variabile?

Offline Neoxxx

  • Translate Team
  • Utente junior
  • **
  • Post: 114
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
Re:TextView come link
« Risposta #5 il: 24 Febbraio 2015, 18:29:09 CET »
0
Il link lo acquisisco da un qrcode quindi lo ho all'interno di una String

Post unito: 24 Febbraio 2015, 21:35:52 CET
Io ho fatto così. E' il modo più semplice.
Funziona anche con testi più estesi, ti cerca tutti i link nel testo e li rende cliccabili.

Codice (Java): [Seleziona]
         TextView txtView = (TextView) findViewById(R.id.txt_vuew);
         txtView.setText(linkText);
         Linkify.addLinks(linkText, Linkify.ALL);

Ciao

Mi da errore anche qui nel metodo addLinks.
Ho modificato questo in:

String mMessage = "<a href=\"http://tuo.url/tua.pagina.html\">Tuo testo</a>";
TextView txtView = (TextView)findViewById(R.id.id_textview);
txtView.setText(Html.fromHtml(mMessage));
txtView.setMovementMethod(LinkMovementMethod.getInstance());

e funziona, il problema è come ho scritto che io ho la stringa link in una variabile e non so come metterla in mMessage


« Ultima modifica: 24 Febbraio 2015, 21:35:52 CET da Neoxxx, Reason: Merged DoublePost »

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 716
  • Respect: +151
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:TextView come link
« Risposta #6 il: 24 Febbraio 2015, 23:52:57 CET »
0
Fai così:

Codice (Java): [Seleziona]
String tuoTesto = "Tuo testo";
String tuoLink = "http://tuo.url/tua.pagina.html";
String mMessage = "<a href=\"" + tuoLink + "\">" + tuoTesto + "</a>";
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline arlabs

  • Utente normale
  • ***
  • Post: 434
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:TextView come link
« Risposta #7 il: 25 Febbraio 2015, 09:58:52 CET »
0
Mi da errore anche qui nel metodo addLinks.

Scusa, per curiosità, mi sai dire che errore ti dà?

Offline Neoxxx

  • Translate Team
  • Utente junior
  • **
  • Post: 114
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
Re:TextView come link
« Risposta #8 il: 25 Febbraio 2015, 16:34:30 CET »
0
Mi dice che il metodo richiede uno Spannable invece che una stringa

Offline arlabs

  • Utente normale
  • ***
  • Post: 434
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:TextView come link
« Risposta #9 il: 25 Febbraio 2015, 17:03:50 CET »
0
Mi dice che il metodo richiede uno Spannable invece che una stringa

Hai ragione, ho sbagliato io, devi passargli la TextView :)

Codice (Java): [Seleziona]
         TextView txtView = (TextView) findViewById(R.id.txt_view);
         txtView.setText(linkText);
         Linkify.addLinks(txtView, Linkify.ALL);

Ciao.
« Ultima modifica: 25 Febbraio 2015, 17:26:28 CET da arlabs »