Mit Linkify.addLinks kombinieren Sie mit Html.fromHtml

Ich habe einTextView Das bekommt seinen Datensatz durch folgenden Aufruf:

tv.setText(Html.fromHtml(myText));

Die SaitemyText enthält teilweise formatierte HTML-Daten. Es kann beispielsweise Schriftarten-Tags enthalten, jedoch keine URL-Links, die mit formatiert wurden<a href=...> Stichworte. Ich hatte gehofft, das zu nutzenLinkify.addLinks(...) Zu diesem Zweck kann mein Text auch andere Arten von Links enthalten, die Linkify für mich entsprechend konvertiert. Also habe ich meinen Code so geschrieben:

String myText = "<font color=\"red\">Red text</font> and Url: www.google.com";
tv.setText(Html.fromHtml(myText));
Linkify.addLinks(tv, Linkify.ALL);
tv.setMovementMethod(LinkMovementMethod.getInstance());

Das funktioniert nicht richtig. Dies bedeutet, dass die Schriftart-Tags verarbeitet werden, Linkify jedoch keine URLs konvertiertUrlSpan richtig.

Wenn ich setText () ohne die Datei Html.fromHtml (..) aufrufe, funktioniert Linkify alternativ, aber ich verliere den gesamten aus den HTML-Schriftart-Tags formatierten Text. Irgendwie scheinen sich beide zu widersprechen und ich kann nur den einen oder anderen haben.

Hier ist der interessante Teil, den ich nicht verstehe. Wenn ich den Linkify-Code aus Java entferne und in mein Layout-XML gehe und die folgenden Zeilen einfüge, scheint alles zu funktionieren (Linkify und fromHtml spielen am Ende beide gut zusammen ... irgendwie)

<TextView
    ... 
    android:autoLink="all"
    android:linksClickable="true"
    ...
/>

Kann mir jemand erklären, warum das alles zum Laufen bringen würde ???

Ich habe mir den Quellcode für TextView's angesehensetMovementMethod() und es endet schließlich mit dem Aufruf:

setFocusable(true);
setClickable(true);
setLongClickable(true);

Damit sollte theoretisch alles funktionieren und sich wie der XML-Layoutcode verhalten. Ich habe versucht, die Reihenfolge der Anrufe zu ändernLinkify.addLinks(..) VorsetText(Html.fromHtml(..)) im Java-Code, aber das machte keinen Unterschied.

Irgendwelche Ideen, warum das Kombinieren von Linkify.addLinks () und Html.fromHtml () in Java dieses Verhalten verursachen würde ... aber nicht im XML-Layout?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage