html.fromhtml()已弃用,替代方案是什么



i已更新为SDK版本24,现在不使用Html.fromHtml()。HTML类具有一种新方法,带有额外的参数名为flag,但最小API为24。

对于下API版本,此功能是否有其他选择?我不想为此目的使用WebView

要么:

  • 在所有API级别上使用Html.fromHtml(String),或者,

  • 在API级别23及旧设备上使用Html.fromHtml(String),以及在API级别24 设备上使用Html.fromHtml(String, int),使用Build.VERSION.SDK_INT来找出您在

  • 上运行的设备的API级别

在这种情况下,"弃用"是寻找两参数方法的提示,但是单参数方法仍然有效,并且(很可能)会在相当长的一段时间内这样做。

<</p>

只使用

 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

实际上还有另一种具有标志参数的方法

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

只需将fromhtml函数与标志参数一起使用。标志参数为

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;

最新更新