我已更新至SDK版本24,現在已棄用Html.fromHtml()
。而Html類有一個新的方法,額外的參數名爲標誌,但它的最小API是24.Html.fromHtml()已被棄用,替代方法是什麼?
對於較低的API版本,這個函數還有其他替代嗎?我不想爲此使用WebView
。
我已更新至SDK版本24,現在已棄用Html.fromHtml()
。而Html類有一個新的方法,額外的參數名爲標誌,但它的最小API是24.Html.fromHtml()已被棄用,替代方法是什麼?
對於較低的API版本,這個函數還有其他替代嗎?我不想爲此使用WebView
。
或者:
使用Html.fromHtml(String)
上的所有API級別,或者,
使用Html.fromHtml(String)
在API級別23和舊設備,並Html.fromHtml(String, int)
對API等級24+設備,使用Build.VERSION.SDK_INT
找出正在運行的設備的API級別
在這種情況下,「不建議使用」是尋找雙參數方法的暗示,但單參數方法仍然有效,並且(很有可能)將在相當長一段時間內這樣做。
確實存在具有標誌參數
/** @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;
該方法調用需要API 24以上,我發現,和編輯我的問題也是, –
@OmerKarakose編譯器無法解析整數標誌。它期待這種格式:fromHtml(字符串源, INT標誌, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) – iOSAndroidWindowsMobileAppsDev
@OmerKarakose錯誤:實測fromHtml(字符串,整數) urlBuilder.setText(HTML沒有合適的方法。 fromHtml(encodedUrl1,FROM_HTML_MODE_LEGACY)); ^ 方法Html.fromHtml(字符串)是不適用 (實際和正式的參數列表的長度不同) 方法Html.fromHtml(字符串,ImageGetter,TagHandler)是不適用 (實際和正式的參數列表的長度不同) 1錯誤 – iOSAndroidWindowsMobileAppsDev
只需使用
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(字符串,INT)24 API文檔如下:
https://developer.android.com/reference/android/text/Html.html
我的一個小偏好: 'if(Build.VERSION.SDK_INT> = Build.VERSION_CODES.N){Html.fromHtml(String,int)// for 24 api and more } else { Html.fromHtml(String)//或for older api }' –
API Level 24+ Html.fromHtml(string,Html.FROM_HTML_MODE_LEGACY); – Shijil
你好@CommonsWare,我們可以使用HtmlEscapers類嗎? https://android.googlesource.com/platform/external/guava/+/3ecfa41/guava/src/com/google/common/html/HtmlEscapers。java – m0rpheu5
@ m0rpheu5:這似乎並不代替'Html'。 – CommonsWare