892 Stimmen

Wie kann man HTML in TextView anzeigen?

Ich habe einfache HTML :

<h2>Title</h2><br>
<p>description here</p>

Ich möchte einen HTML-gestalteten Text in TextView . Wie ist dies zu tun?

8 Stimmen

Möchten Sie die Tags anzeigen oder weglassen?

1 Stimmen

Ein funktionierendes Beispiel finden Sie unter diesem Link javatechig.com/2013/04/07/how-to-display-html-in-Android-view

1 Stimmen

Wenn Sie nach einer veralteten Lösung suchen, sind Sie hier genau richtig stackoverflow.com/questions/37904739/

10voto

Roman Punkte 1759

Erstellt Kotlin Erweiterungen zu konvertieren html de Zeichenfolge -

fun String?.toHtml(): Spanned? {
    if (this.isNullOrEmpty()) return null
    return HtmlCompat.fromHtml(this, HtmlCompat.FROM_HTML_MODE_COMPACT)
}

10voto

Teo Inke Punkte 5746

Es ist erwähnenswert, dass die Methode Html.fromHtml(String source) ist ab API-Stufe 24 veraltet. Wenn das Ihre Ziel-API ist, sollten Sie Html.fromHtml(String source, int flags) stattdessen.

6voto

Paul Lammertsma Punkte 36529

In verschiedenen Antworten wurde vorgeschlagen, die Html Framework-Klasse, wie hier vorgeschlagen, aber leider hat diese Klasse ein unterschiedliches Verhalten in verschiedenen Versionen von Android und verschiedene nicht behobene Bugs, wie in Problemen gezeigt 214637 , 14778 , 235128 y 75953 .

Sie können daher eine Kompatibilitätsbibliothek verwenden, um die Html-Klasse zu standardisieren und über Android-Versionen hinweg zu portieren, die mehr Callbacks für Elemente und Styling enthält:

Github-Projekt HtmlCompat

Obwohl sie der Html-Klasse des Frameworks ähnelt, waren einige Änderungen der Signatur erforderlich, um mehr Rückrufe zu ermöglichen. Hier ist das Beispiel von der GitHub-Seite:

Spanned fromHtml = HtmlCompat.fromHtml(context, source, 0);
// You may want to provide an ImageGetter, TagHandler and SpanCallback:
//Spanned fromHtml = HtmlCompat.fromHtml(context, source, 0,
//        imageGetter, tagHandler, spanCallback);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(fromHtml);

0 Stimmen

@MartijnPieters Die zuvor geschlossene Antwort war ein Duplikat einer Antwort auf diese Frage im Zusammenhang mit der Ausmusterung einer Rahmenmethode . Ich habe den Grund dafür, dass eine Kompatibilitätsbibliothek der bessere Ansatz wäre, näher erläutert. Ich glaube nicht, dass es sinnvoll ist, eine der beiden Fragen als Duplikat zu kennzeichnen, da sie eindeutig unterschiedlich sind.

6voto

Sandeep Pareek Punkte 1028

verwenden Sie einfach enter image description here

checkBoxTextView.text =
        Html.fromHtml("<p><font color=#666666>I agree to</font><font color=#0173B7>  <b><u>Terms & Conditions</u></b></font><font color=#666666> and the <u></font><b><font color=#0173B7>Privacy Policy</font></u></b></font></p>")

6voto

Fedotchenco Denis Punkte 111

Ich möchte auch folgendes Projekt vorschlagen: https://github.com/NightWhistler/HtmlSpanner

Die Nutzung ist fast die gleiche wie beim Standard-Android-Konverter:

(new HtmlSpanner()).fromHtml()

Ich habe es gefunden, nachdem ich bereits mit einer eigenen Implementierung eines Konverters für die Umwandlung von html in spannable begonnen hatte, da der Standard Html.fromHtml nicht genügend Flexibilität bei der Steuerung der Darstellung bietet und auch keine Möglichkeit, benutzerdefinierte Schriftarten aus ttf zu verwenden

0 Stimmen

Ich erhalte folgende Fehlermeldung: Error:(80, 13) Failed to resolve: com.osbcp.cssparser:cssparser:1.5 Wie löse ich das Problem?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X