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/

5voto

androidEnthusiast Punkte 1097

を使用する場合 androidx. *-Klassen in Ihrem Projekt verwenden, sollten Sie HtmlCompat.fromHtml(text, flag) .

Quelle der Methode ist:

@NonNull
    public static Spanned fromHtml(@NonNull String source, @FromHtmlFlags int flags) {
        if (Build.VERSION.SDK_INT >= 24) {
            return Html.fromHtml(source, flags);
        }
        //noinspection deprecation
        return Html.fromHtml(source);
    }

Es ist besser zu verwenden HtmlCompat.fromHtml als Html.fromHtml da es weniger Code gibt - nur eine Zeile Code - und es ist der empfohlene Weg, ihn zu verwenden.

5voto

java dev Punkte 994

Einfache Nutzung Html.fromHtml("html string") . Dies wird funktionieren. Wenn die Zeichenfolge Tags enthält wie <h1> dann werden Räume entstehen. Aber wir können diese Leerzeichen nicht eliminieren. Wenn Sie die Leerzeichen dennoch entfernen möchten, können Sie die Tags in der Zeichenfolge entfernen und die Zeichenfolge dann an die Methode Html.fromHtml("html string"); . Auch im Allgemeinen diese Zeichenfolgen kommen von Server (dynamisch), aber nicht oft, wenn es der Fall ist besser, die Zeichenfolge zu übergeben, wie es an die Methode als versuchen, die Tags aus der Zeichenfolge zu entfernen ist.

4voto

samuel gildas Punkte 31
String value = html value ....
mTextView.setText(Html.fromHtml(value),TextView.BufferType.SPANNABLE)

4voto

Shailendra Madda Punkte 19055

Erstellen Sie eine globale Methode wie:

public static Spanned stripHtml(String html) {
            if (!TextUtils.isEmpty(html)) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    return Html.fromHtml(html, Html.FROM_HTML_MODE_COMPACT);
                } else {
                    return Html.fromHtml(html);
                }
            }
            return null;
        }

Sie können es auch in Ihrer Aktivität/Ihrem Fragment verwenden wie:

text_view.setText(stripHtml(htmlText));

4voto

Shubham Agarwal Punkte 3802

Ich habe dies mit der Webansicht implementiert. In meinem Fall muss ich Bild von URL zusammen mit dem Text in Textansicht laden und dies funktioniert für mich.

WebView myWebView =new WebView(_context);
        String html = childText;
        String mime = "text/html";
        String encoding = "utf-8";
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.loadDataWithBaseURL(null, html, mime, encoding, null);

0 Stimmen

Für die korrekte Anzeige von UTF-8 müssen Sie den MIME-Typ auf "text/html; charset=UTF-8" einstellen.

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