Android:删除 Html.fromHtml 的弃用警告
Android: remove deprecation warning for Html.fromHtml
我想删除 Html.fromHtml(string)
的弃用警告。
我试过这样做:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
htmlSpanned = Html.fromHtml(string,Html.FROM_HTML_MODE_LEGACY);
} else {
//noinspection deprecation
htmlSpanned = Html.fromHtml(string);
}
但是在编译过程中仍然给我警告:
Warning:(18, 31) [deprecation] fromHtml(String) in Html has been
deprecated
你可以试试。我的意思是你的代码看起来不错,我试过了并且对我有用。
//获取我们的html内容
String htmlAsString = getString(R.string.html);
Spanned htmlAsSpanned = Html.fromHtml(htmlAsString);
// 被 TextView 使用
// 在 TextView
上设置 html 内容
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(htmlAsSpanned);
我们的你可以试试:
@SuppressWarnings("deprecation")
如果您的 minSdkVersion
是 24 或更高,请使用 fromHtml()
that takes some flags as a parameter 的版本。 AFAIK,FROM_HTML_MODE_LEGACY
将是用于与旧的无标志 fromHtml() 兼容的标志值。
如果您的 minSdkVersion 低于 24,您的选择是:
始终使用你现在的 fromHtml()
,可能使用快速修复 (Alt-Enter) 来抑制 Lint 警告
使用两个版本的 fromHtml()
:如果您的应用是 运行 在 API 级别 24+ 设备上,则使用标记的版本,或者在旧设备上没有标记的版本.
好吧,单参数 fromHtml()
已弃用。 Build
检查确保您不会 在旧设备上调用 它,但它不会改变它已被弃用的事实 compileSdkVersion
为 24.
您有四个选择:
将 compileSdkVersion
降低到 24 以下。这会产生连锁反应(例如,您不能使用支持库的 24.x.x 版本)并且不是一个很好的选择。
将 minSdkVersion
设置为 24 并摆脱单参数 fromHtml()
调用。这在2016年是不切实际的。
接受删除线和 Lint 投诉。
在方法中添加适当的 @SuppressLint
注释,让 IDE 停止抱怨。 As Ahlem Jarrar notes,最简单的添加方法是通过快速修复。
这是我曾经的解决方案:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
textField.setText(Html.fromHtml(htmlText, Html.FROM_HTML_MODE_COMPACT));
} else {
textField.setText(Html.fromHtml(htmlText);
}
它工作得很好。
Android 或 Kotlin 或 Google 已经创建了 HtmlCompat 可以用来代替方法 Html。将此依赖项实现 'androidx.core:core:1.0.1' 添加到应用程序的 build.gradle 文件中。确保使用最新版本的 androidx.core:core.
这允许您使用:
HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY);
如果需要,您可以将 HTML.FROM_HTML_MODE_LEGACY 转换为附加参数。这使您可以更好地控制使用哪个标志。
上阅读更多关于不同标志的信息
我想删除 Html.fromHtml(string)
的弃用警告。
我试过这样做:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
htmlSpanned = Html.fromHtml(string,Html.FROM_HTML_MODE_LEGACY);
} else {
//noinspection deprecation
htmlSpanned = Html.fromHtml(string);
}
但是在编译过程中仍然给我警告:
Warning:(18, 31) [deprecation] fromHtml(String) in Html has been deprecated
你可以试试。我的意思是你的代码看起来不错,我试过了并且对我有用。
//获取我们的html内容
String htmlAsString = getString(R.string.html);
Spanned htmlAsSpanned = Html.fromHtml(htmlAsString);
// 被 TextView 使用
// 在 TextView
上设置 html 内容TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(htmlAsSpanned);
我们的你可以试试:
@SuppressWarnings("deprecation")
如果您的 minSdkVersion
是 24 或更高,请使用 fromHtml()
that takes some flags as a parameter 的版本。 AFAIK,FROM_HTML_MODE_LEGACY
将是用于与旧的无标志 fromHtml() 兼容的标志值。
如果您的 minSdkVersion 低于 24,您的选择是:
始终使用你现在的 fromHtml()
,可能使用快速修复 (Alt-Enter) 来抑制 Lint 警告
使用两个版本的 fromHtml()
:如果您的应用是 运行 在 API 级别 24+ 设备上,则使用标记的版本,或者在旧设备上没有标记的版本.
好吧,单参数 fromHtml()
已弃用。 Build
检查确保您不会 在旧设备上调用 它,但它不会改变它已被弃用的事实 compileSdkVersion
为 24.
您有四个选择:
将
compileSdkVersion
降低到 24 以下。这会产生连锁反应(例如,您不能使用支持库的 24.x.x 版本)并且不是一个很好的选择。将
minSdkVersion
设置为 24 并摆脱单参数fromHtml()
调用。这在2016年是不切实际的。接受删除线和 Lint 投诉。
在方法中添加适当的
@SuppressLint
注释,让 IDE 停止抱怨。 As Ahlem Jarrar notes,最简单的添加方法是通过快速修复。
这是我曾经的解决方案:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
textField.setText(Html.fromHtml(htmlText, Html.FROM_HTML_MODE_COMPACT));
} else {
textField.setText(Html.fromHtml(htmlText);
}
它工作得很好。
Android 或 Kotlin 或 Google 已经创建了 HtmlCompat 可以用来代替方法 Html。将此依赖项实现 'androidx.core:core:1.0.1' 添加到应用程序的 build.gradle 文件中。确保使用最新版本的 androidx.core:core.
这允许您使用:
HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY);
如果需要,您可以将 HTML.FROM_HTML_MODE_LEGACY 转换为附加参数。这使您可以更好地控制使用哪个标志。
上阅读更多关于不同标志的信息