(转载)Android Html.fromHtml(String)过时的替代方法

问题

当我们想用TextView来显示一段html代码时,则会用到Html.fromHtml(String) 
但是现在这个方法是过时的。

解决

使用API Level 23或之前的设备可以用过时的方法,API Level 24或以上的设备则使用2个参数的方法即可。 
fromHtml(String source, int flags) 
即:

        TextView tv_text = (TextView) findViewById(R.id.tv_text);
        CharSequence charSequence;
        String content = "<p>简介:</p><p>1.nickname:wildma!</p><p>2.职业:android攻城狮</p>";
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
            charSequence = Html.fromHtml(content,Html.FROM_HTML_MODE_LEGACY);
        } else {
            charSequence = Html.fromHtml(content);
        }
        tv_text.setText(charSequence);

其中的flags表示: 
FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔 
FROM_HTML_MODE_LEGACY:html块元素之间使用两个换行符分隔

参考:https://stackoverflow.com/questions/37899856/html-fromhtml-is-deprecated-what-is-the-alternative

//--------------------------------------------------------------------------------------------------------

放在TextView中展示的效果,符合上述说的。

FROM_HTML_MODE_COMPACT:

FROM_HTML_MODE_LEGACY:

放在EditText中展示的效果:

FROM_HTML_MODE_COMPACT,一个换行分隔符相当于于一个空格:

FROM_HTML_MODE_LEGACY,两个换行分隔符相当于于两个空格:

猜你喜欢

转载自blog.csdn.net/zhuhai__yizhi/article/details/82700352
今日推荐