web-dev-qa-db-fra.com

Html.fromHtml () est obsolète, quelle est l'alternative?

J'ai mis à jour le SDK version 24 et maintenant Html.fromHtml() est obsolète. Et la classe HTML a une nouvelle méthode avec un paramètre supplémentaire nommé flag, mais son API minimum est de 24.

Existe-t-il une alternative à cette fonction aux versions inférieures de l'API?. Je ne veux pas utiliser un WebView à cette fin.

41
Aawaz Gyawali

Soit:

  • Utilisez Html.fromHtml(String) à tous les niveaux de l'API, ou

  • Utilisez Html.fromHtml(String) sur les périphériques de niveau API 23 et plus anciens et Html.fromHtml(String, int) sur les périphériques de niveau API 24+ et plus, à l'aide de Build.VERSION.SDK_INT pour connaître le niveau d'API du périphérique sur lequel vous travaillez

Dans ce cas, "obsolète" est un indice pour rechercher la méthode à deux paramètres, mais la méthode à un paramètre fonctionne toujours et (selon toute vraisemblance) le fera pendant un certain temps.

76
CommonsWare

Juste utiliser

 if (Build.VERSION.SDK_INT >= 24) {
     Html.fromHtml(String, int) // for 24 api and more
 } else {
     Html.fromHtml(String) // or for older api
 }

utiliser Html.fromHtml (String, int) pendant 24 api suivez la documentation:

https://developer.Android.com/reference/Android/text/Html.html

52
Ognev Zair

En fait, il existe une autre méthode avec le paramètre flag

/** @deprecated */
@Deprecated
public static Spanned fromHtml(String source) {
    throw new RuntimeException("Stub!");
}

public static Spanned fromHtml(String source, int flags) {
    throw new RuntimeException("Stub!");
}

utilisez simplement la fonction fromHtml avec le paramètre flag. les paramètres de drapeau sont

public static final int FROM_HTML_MODE_COMPACT = 63;
public static final int FROM_HTML_MODE_LEGACY = 0;
public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256;
public static final int FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32;
public static final int FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16;
public static final int FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2;
public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8;
public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4;
public static final int FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1;
public static final int TO_HTML_PARAGRAPH_LINES_CONSECUTIVE = 0;
public static final int TO_HTML_PARAGRAPH_LINES_INDIVIDUAL = 1;
12
okarakose