Collegamenti in TextView

Devo mettere un collegamento in un TextView , ho una string che contiene il tag <a href="link">Text for link</a> e qualche altro text. Il problema è che se eseguo il progetto vedo il text, ma non è cliccabile. Ho provato con il tag <b> anche per vedere se funziona e sembra che non funziona troppo.

Come posso fare questo per funzionare senza l'utilizzo di Linkify ?

  • Il ClearCache di Webview di Android è molto lento
  • Android cattura il video di movimento lento utilizzando CamcorderProfile
  • Interpretare la traccia di performance multicore (Eclipse / Android)
  • android ANTLR non funzionano correttamente
  • SecurityException: Imansible trovare il field per android di dex.jar
  • Distorsione dell'image della camera frontale
  • Il progetto della libreria Android utilizza dichiarazioni-styleable - come compilare?
  • Libreria PDF per rendere i file PDF in Android
  • Barra di ricerca discreta nell'applicazione Android?
  • Il tag String in xml sta creando un problema in api sopra 16
  • Avviare il mio servizio?
  • Barra di azione Android: Modifica del colore dei pulsanti di azione
  • 9 Solutions collect form web for “Collegamenti in TextView”

    Grazie per il tuo aiuto tutti.

    Sono riuscito a fare questo lavoro, dopo aver trovato alcuni esempi nei campioni android.

    ecco il codice:

     textView.setText(Html.fromHtml( "<b>text3:</b> Text with a " + "<a href=\"http://www.google.com\">link</a> " + "created in the Java source code using HTML.")); textView.setMovementMethod(LinkMovementMethod.getInstance()); 

    Spero che questo aiuti gli altri …

    Ottenere link funzionanti da html è un po 'difficile:

    1. Applica il tuo text tramite xml android:text="@string/… o via setText() (vedi altre risposte)

    2. Utilizza textView.setMovementMethod(LinkMovementMethod.getInstance()) per rendere i collegamenti cliccabili (vedere altre risposte)

    3. NON aggiungi android:autoLink="web" a voi la risorsa XML (sezione TextView ), altrimenti i tag A non vengono eseguiti correttamente e non vengono più cliccati.

    Nota 1:
    L' OnClickListener può essere utile se il tuo TextView contiene solo un collegamento e si desidera triggersre la navigazione anche se l'utente fa clic sul link, ma all'interno del TextView .

    Nota 2:
    android:linksClickable="true" ancora non funziona (da Android 3.2), usa p. Invece

    Linkify è la class che devi utilizzare per creare collegamenti. BTW, qual è la ragione per non utilizzare Linkify?

    Puoi colbind tutti i testi nel tuo text di text per azioni come visitare un sito web o call un numero di telefono basato sullo schema. Android offre il modo più semplice per farlo. Considerate il codice riportto di seguito.

     TextView noteView = (TextView) findViewById(R.id.noteview); noteView.setText(someContent); Linkify.addLinks(noteView, Linkify.ALL); 

    Per la creazione di collegamenti personalizzati, la stessa class Linkify offre varie opzioni. Google ha pubblicato un post sul blog su questo .

    Non riuscivo a capire, ma finalmente ha iniziato a lavorare quando ho fatto qualcosa di simile:

     tvTermsOfUse.setText(Html.fromHtml(getString(R.string.tv_terms_of_use_html))); Linkify.addLinks(tvTermsOfUse, Linkify.ALL); tvTermsOfUse.setMovementMethod(LinkMovementMethod.getInstance()); 

    La visualizzazione di text sembra:

     <TextView android:id="@+id/tv_terms_of_use" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:textAlignment="gravity" android:gravity="center" android:textColor="@android:color/white" android:textSize="15sp" /> 

    e la string res:

     <string name="tv_terms_of_use_html"> <![CDATA[This is link to <a href="http://google.com/">Google</a>.]]> </string> 

    Parte importnte: Il Linkify.addLinks deve essere fatto prima di tvTermsOfUse.setMovementMethod , altrimenti non functionrà.

    Non sono necessarie altre impostazioni in XML.

    Ci sono voluti circa un'ora per capirlo, spero che aiuta qualcuno.

    EDIT:

    Secondo il commento di @rfellons

    Grazie. Anche per me funziona … ma solo con su Manifest.xml. – rfellons 7 settembre alle 13:31

    Assicurati di controllarlo pure.

    Uso

     android:linksClickable="true" android:autoLink="web" 

    Non posso rispondere alla tua risposta per qualche motivo; Volevo solo dire che è ansible omettere il textView.setText e inserirlo solo in una risorsa di string e impostare l'utilizzo di android:text . Devi solo mantenere il textView.setMovementMethod(LinkMovementMethod.getInstance()); ; purtroppo android:linksClickable="true" da solo non funziona.

    La soluzione: Linkify.addLinks (chatText, Linkify.ALL);

    Questo funziona piuttosto corretto: (nelle properties; di visualizzazione di text, all'interno del file xml)

     android:autolink="web" 

    Per aggiungere dynamicmente i collegamenti (recuperati dal server), questo funziona:

     textView.setText(Html.fromHtml( "<a href=" + response.getLink() + ">" + context.getString(R.string.link_from_server) + "</a> ")); 

    e in XML aggiungere questo:

     android:linksClickable="true" 

    Se il tuo strings.xml ha questo:

     <string name="link_from_server">Dynamic Link</string> 

    Questo aggiungerà "Dynamic Link" alla tua vista di text e se toccate questo, andrà al link fornito dal tuo server.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.