Html.fromHtml() устарел, какова альтернатива?
Я обновил версию SDK версии 24 и теперь Html.fromHtml()
устарел. И класс Html имеет новый метод с дополнительным параметром с именем flag, но его минимальный API равен 24.
Есть ли альтернатива этой функции более низким версиям API?. Я не хочу использовать WebView
для этой цели.
Ответы
Ответ 1
Или:
-
Используйте Html.fromHtml(String)
на всех уровнях API, или
-
Используйте Html.fromHtml(String)
на уровне API 23 и более старых устройствах и Html.fromHtml(String, int)
на устройствах уровня API 24+, используя Build.VERSION.SDK_INT
, чтобы узнать уровень API устройства, на котором вы работаете
В этом случае "устаревший" - это намек на поиск двухпараметрического метода, но однопараметрический метод все еще работает и (по всей вероятности) сделает это в течение довольно долгого времени.
Ответ 2
Просто используйте
if (Build.VERSION.SDK_INT >= 24) {
Html.fromHtml(String, int) // for 24 api and more
} else {
Html.fromHtml(String) // or for older api
}
для использования Html.fromHtml(String, int) для 24 api следуйте документации:
https://developer.android.com/reference/android/text/Html.html
Ответ 3
На самом деле существует еще один метод с параметром флага
/** @deprecated */
@Deprecated
public static Spanned fromHtml(String source) {
throw new RuntimeException("Stub!");
}
public static Spanned fromHtml(String source, int flags) {
throw new RuntimeException("Stub!");
}
просто используйте функциюHtml с параметром флага. параметры флага
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;