41 votes

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.

76voto

CommonsWare Points 402670

Non plus:

  • Utilisez Html.fromHtml(String) sur tous les niveaux d’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, en utilisant Build.VERSION.SDK_INT pour connaître le niveau API du périphérique que vous sont en cours d'exécution sur

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.

52voto

Ognev Zair Points 1011

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

12voto

okarakose Points 1218

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;
 

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