Wie kann ich Links machen vonHTML clickable? (Android)

Das scheint wie ein triviales Problem, aber ist, ist mir irgendwie stumped. Ich möchte einen HTML-String mit Html.fromHtml () laden und haben alle Links in der Zeichenfolge, die anklickbar und im Browser geöffnet werden kann.

Grundbeispiel:

  • Java.lang.RuntimeException: Die Instantiierung der Anwendung android.app.Application: java.lang.NullPointerException bei LoadedApk.makeApplication
  • Wie man EditText nicht fokussiert beim Erstellen von Aktivitäten macht
  • Überprüfe meine App-Version programmgesteuert im Android-Markt
  • Wie man die maximale Breite für ein Layout festlegt
  • Framework7 in Webview Seiten nicht geladen
  • Warum libcore.io.ErrnoException: kill failed: ESRCH (kein solcher Prozess) in Android?
  • textView.setText(Html.fromHtml("<a href=\"http://www.google.com\">This is a link</a>")); 

    Mit diesem Snippet ist der Text formatiert, als ob es ein Link wäre (blau, unterstrichen), aber es ist nicht klickbar. Ich habe versucht, Linkify, aber es scheint nur mit Links zu arbeiten, die nicht HTML-basiert sind.

    Irgendwelche Vorschläge?

  • Wie zeichne abgerundetes Rechteck in Android UI?
  • NoClassDefFoundError für OkHttpClient
  • Android ListView - Stoppen Sie das Blättern in der 'ganzen' Zeilenposition
  • Deserialisieren von JSON zu Java enum
  • Wie die Leistung von JS Draggable Menü in WebView auf Android zu verbessern
  • Was ist die Standard-Textauflage im Spinner
  • 5 Solutions collect form web for “Wie kann ich Links machen vonHTML clickable? (Android)”

    Wie ich vermutete, war die Lösung trivial:

     textView.setText(Html.fromHtml("<a href=\"http://www.google.com\">This is a link</a>")); textView.setMovementMethod(LinkMovementMethod.getInstance()); 

    Die zweite Zeile aktiviert das Link-Verhalten irgendwie, obwohl ich mir nicht ganz sicher bin. Die gleiche Frage wird bei Google Code behandelt .

    Wie in anderen Antworten erwähnt, ist ein Weg nach vorn zu verwenden:

     xtView.setText(Html.fromHtml("<a href=\"http://www.google.com\">This is a link</a>")); textView.setMovementMethod(LinkMovementMethod.getInstance()); 

    Allerdings wird dies nicht funktionieren, wenn Sie irgendwelche Android haben: autoLink Wert gesetzt, nicht nur 'Web' wie andere Kommentare scheinen vorzuschlagen. So bedeutet das, dass du diese Lösung nutzen kannst, um URLs auf Kosten von Telefon, E-Mail und Karten zu verknüpfen, die deaktiviert / nicht verknüpft sind.

    Der Javadoc der LinkMovementMethod sagt das

    Unterstützt das Klicken auf Links mit DPad Center oder Enter.

    So macht es Sinn, dass so funktioniert.

    Und bestätigt, mit 4.2.2 Werke wie Charme mit nur die

     textView.setMovementMethod(LinkMovementMethod.getInstance()); 

    Es sollte so sein:

     textView.setText(Html.fromHtml("<a href=\"http://www.google.com\">This is a link</a>")); textView.setAutoLinkMask(Linkify.WEB_URLS); textView.setLinksClickable(true); 

    In XML sollte sein

     <TextView android:id="@+id/txtview" android:autoLink="web" android:linksClickable="true" /> 
     String data="MyTest"; textView.setText(data); textView.setText(Html.fromHtml(data)); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setLinksClickable(true); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.