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?
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?
Ich weiß, diese Frage ist alt. Andere Antworten hier suggerieren Html.fromHtml()
Methode. Ich schlage vor, Sie verwenden HtmlCompat.fromHtml()
de androidx.core.text.HtmlCompat
Paket. Da dies eine abwärtskompatible Version von Html
Klasse.
Beispiel-Code:
import androidx.core.text.HtmlCompat;
import android.text.Spanned;
import android.widget.TextView;
String htmlString = "<h1>Hello World!</h1>";
Spanned spanned = HtmlCompat.fromHtml(htmlString, HtmlCompat.FROM_HTML_MODE_COMPACT);
TextView tvOutput = (TextView) findViewById(R.id.text_view_id);
tvOutput.setText(spanned);
Auf diese Weise können Sie die Prüfung der Android-API-Version vermeiden und es ist einfach zu verwenden (Einzeilenlösung).
Ich habe mich extra angemeldet, um Ihre Antwort hochzustufen. Das sollte jeder verwenden. Danke!
Dies ist zwar ein sehr nützlicher Weg, um die eingeschränkte Anzahl von html-Tags zu umgehen, die von TextView unterstützt werden, hat aber den Nachteil, dass es funktioniert nicht gut con layout_height="wrap_content"
. Sie müssen stattdessen eine explizite Höhe oder match_parent festlegen.
Der beste Ansatz, um CData Abschnitte für die Zeichenfolge in strings.xml Datei verwenden, um eine tatsächliche Anzeige des HTML-Inhalts auf die TextView die unten Code-Schnipsel wird Ihnen die faire Idee.
//in string.xml file
<string name="welcome_text"><![CDATA[<b>Welcome,</b> to the forthetyroprogrammers blog Logged in as:]]> %1$s.</string>
//and in Java code
String welcomStr=String.format(getString(R.string.welcome_text),username);
tvWelcomeUser.setText(Html.fromHtml(welcomStr));
Der CData-Abschnitt im String-Text hält die Daten des HTML-Tags auch nach der Formatierung des Textes mit der Methode String.format intakt. Html.fromHtml(str) funktioniert also gut und Sie sehen den fettgedruckten Text in der Willkommensnachricht.
Ausgabe:
Willkommen in deinem Lieblings-Musik-App-Store. Eingeloggt als: Benutzername
Danke, du hast mir den Tag gerettet :) Nur eine kleine Ergänzung: Wir müssen diese Prüfung zum obigen Code hinzufügen: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // für 24 api und mehr textView.setText(Html.fromHtml(welcomStr, Html.FROM_HTML_OPTION_USE_CSS_COLORS)); } else { // oder für ältere api textView.setText(Html.fromHtml(welcomStr)); } . Der Wert für den 2. Parameter flag für API>=24 kann je nach Anforderung beliebig sein.
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.
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/
1 Stimmen
Textview.setText(Html.fromHtml("your HTML")); ist die beste Methode, um nur HTML-Tags anzuzeigen. Es gibt auch eine Methode, um JS abzuspielen.
0 Stimmen
Android unterstützt nicht alle HTML-Tags. Prüfen Sie dies arkapp.medium.com/Android-set-html-in-text-view-b912e1a96b21 um besser zu verstehen, wie man in der Textansicht arbeitet.