Android N では Html.fromHtml は非推奨です 質問する

Android N では Html.fromHtml は非推奨です 質問する

Html.fromHtmlで HTML を表示するために使用していますTextView

Spanned result = Html.fromHtml(mNews.getTitle());
...
...
mNewsTitle.setText(result);

しかし、Html.fromHtmlAndroid N+では非推奨になりました

これを実行する新しい方法は何ですか?

ベストアンサー1

更新:@Andy は下記に言及していますHtmlCompatGoogle は、以下の方法の代わりに使用できる を作成しました。この依存関係を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 クラスのドキュメント

おすすめ記事