893 votes

Comment afficher du HTML dans un TextView ?

J'ai de simples HTML :

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

Je veux afficher du texte stylé en HTML en TextView . Comment faire ?

8 votes

Voulez-vous afficher les balises ou les omettre ?

1 votes

Consultez ce lien pour un exemple fonctionnel javatechig.com/2013/04/07/how-to-display-html-in-Android-view

1 votes

Si vous cherchez la solution de l'obsolescence, c'est ici. stackoverflow.com/questions/37904739/

2voto

Happy Vicky Points 761

Lorsque vous écrivez une vue de texte personnalisée, la fonction de texte de base du HTML disparaît de certains appareils.

Nous devons donc suivre les étapes supplémentaires suivantes pour que cela fonctionne.

public class CustomTextView extends TextView {

    public CustomTextView(..) {
        // other instructions
        setText(Html.fromHtml(getText().toString()));
    }
}

2voto

Sumit Shukla Points 128

Il suffit d'utiliser :

String variable="StackOverflow";
textView.setText(Html.fromHtml("<b>Hello : </b>"+ variable));

1voto

Isaac Sekamatte Points 968
public class HtmlTextView extends AppCompatTextView {

public HtmlTextView(Context context) {
    super(context);
    init();
}

private void init(){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        setText(Html.fromHtml(getText().toString(), Html.FROM_HTML_MODE_COMPACT));
    } else {
        setText(Html.fromHtml(getText().toString()));
    }
 }
}

l'actualisation de réponse ci-dessus

1voto

Utilisez le code ci-dessous pour obtenir la solution :

textView.setText(fromHtml("<Your Html Text>"))

Méthode d'utilité

public static Spanned fromHtml(String text)
{
    Spanned result;
    if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
        result = Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY);
    } else {
        result = Html.fromHtml(text);
    }
    return result;
}

1voto

seyfx Points 26

Vous pouvez utiliser une simple fonction d'extension Kotlin comme ceci :

fun TextView.setHtmlText(source: String) {
    this.text = HtmlCompat.fromHtml(source, HtmlCompat.FROM_HTML_MODE_LEGACY)
}

Et l'usage :

textViewMessage.setHtmlText("Message: <b>Hello World</b>")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X