Html.fromHtml
で HTML を表示するために使用していますTextView
。
Spanned result = Html.fromHtml(mNews.getTitle());
...
...
mNewsTitle.setText(result);
しかし、Html.fromHtml
Android N+では非推奨になりました
これを実行する新しい方法は何ですか?
ベストアンサー1
更新:@Andy は下記に言及していますHtmlCompat
Google は、以下の方法の代わりに使用できる を作成しました。この依存関係をimplementation 'androidx.core:core:1.0.1
アプリの build.gradle ファイルに追加します。 の最新バージョンを使用するようにしてくださいandroidx.core:core
。
これにより、次の機能を使用できるようになります。
HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY);
さまざまな旗の詳細については、HtmlCompat ドキュメント
元の回答: Android N では新しいHtml.fromHtml
メソッドが導入されました。flagsHtml.fromHtml
という名前の追加パラメータが必要になります。このフラグにより、HTML の表示方法をより細かく制御できます。
Android N 以降では、この新しい方法を使用する必要があります。古い方法は非推奨であり、将来の Android バージョンでは削除される可能性があります。
古いバージョンでは古いメソッドを使用し、Android N 以降では新しいメソッドを使用する独自の Util メソッドを作成できます。バージョン チェックを追加しないと、アプリはそれより低いバージョンの Android では動作しなくなります。このメソッドは Util クラスで使用できます。
@SuppressWarnings("deprecation")
public static Spanned fromHtml(String html){
if(html == null){
// return an empty spannable if the html is null
return new SpannableString("");
}else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
// FROM_HTML_MODE_LEGACY is the behaviour that was used for versions below android N
// we are using this flag to give a consistent behaviour
return Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY);
} else {
return Html.fromHtml(html);
}
}
HTML.FROM_HTML_MODE_LEGACY
必要に応じて、を追加パラメータに変換できます。これにより、どのフラグを使用するかをより細かく制御できるようになります。
さまざまな旗の詳細については、HTML クラスのドキュメント