zoukankan      html  css  js  c++  java
  • Html.fromHtml采坑篇

    在显示复杂的文本样式时,通常采用SpannableString和Html.formHtml来解决需求。

    在使用html过程中,通常会出现以下问题:

    1、提示Html.formHtml方法过时

    解决

    使用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块元素之间使用两个换行符分隔

    1、提示Html.formHtml方法标签无效(<del>中划线为例说明)

    解决

     String contentStr = "是否确认还款%1$s元?(包含本金:%2$s元;利息:<del>%3$s</del>元,<font color="#FF9302">%4$s元</font>;服务费:<del>%5$s</del>元,<font color="#FF9302">%6$s元</font>)";
     
    dialog.setContentStr(Html.fromHtml(contentStr, null, new Html.TagHandler() {
                                    int startTag;
                                    int endTag;
                                    @Override
                                    public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {
                                        if (tag.equalsIgnoreCase("del")){
                                            if(opening){
                                                startTag = output.length();
                                            }else{
                                                endTag = output.length();
                                                output.setSpan(new StrikethroughSpan(),startTag,endTag, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                                            }
                                        }
                                    }
                                }));
    ggband
  • 相关阅读:
    组合模式扩展,有选择的递归
    SQL分页查询【转】
    facade外观模式
    C#:几种数据库的大数据批量插入 faib
    装饰模式的扩展
    yeild之我理解
    数据库操作 sqlserver查询存储过程+分页
    SQL Server 索引结构及其使用(二)[转]
    SQL索引使用初步,(转)
    解决多集成,多子类,扩展等 装饰模式
  • 原文地址:https://www.cnblogs.com/ggband/p/10303791.html
Copyright © 2011-2022 走看看