在显示复杂的文本样式时,通常采用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);
}
}
}
}));

Html.fromHtml采坑篇的更多相关文章

  1. 换一种视角看DNS(采坑篇)

    换一种视角看DNS 我们尽量用精炼的语言,尽可能的规划DNS的全貌(当然笔者水平有限,如有错误请不吝赐教). 通常啊我们在个人PC中能看到DNS的配置身影就是在上网的时候,通常如果你不配置DNS可能找 ...

  2. 从源码看Spring Security之采坑笔记(Spring Boot篇)

    一:唠嗑 鼓捣了两天的Spring Security,踩了不少坑.如果你在学Spring Security,恰好又是使用的Spring Boot,那么给我点个赞吧!这篇博客将会让你了解Spring S ...

  3. Node学习笔记(四):gulp+express+io.socket部署angularJs2(填坑篇)

    这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angular ...

  4. Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记

    公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群. 话说,好想去捡垃圾,捡台8核16线 ...

  5. 分布式改造剧集之Redis缓存采坑记

    Redis缓存采坑记 ​ 前言 ​ 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序 ...

  6. 实现万行级excel导出---poi--ooxm的应用和采坑

    xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! - ...

  7. k8s采坑记 - 解决二进制安装环境下证书过期问题

    前言 上一篇k8s采坑记 - 证书过期之kubeadm重新生成证书阐述了如何使用kubeadm解决k8s证书过期问题. 本篇阐述使用二进制安装的kubernetes环境,如何升级过期证书? k8s配置 ...

  8. tomcat采坑

    1. tomcat采坑 1.1. 采坑 今天又踩了个以前踩过的坑,运维系统迁移到docker,使用的tomcat版本是tomcat8,而原来的版本是tomcat7.0.53,导致的结果就是系统间请求一 ...

  9. vue项目打包采坑

    1. vue项目打包采坑 1.1. vue运行报错error:Cannot assign to read only property 'exports' of object '#' 这个错误我是在打包 ...

随机推荐

  1. JAVA for(i = 0; i<a.length; i++) 解析

    下列 System.out.printf 语句输出的结果是什么? Char a[]={„a‟,‟b‟,‟c‟,‟d‟,‟e‟}; For(i=0; i<=a.length/2; i++) { c ...

  2. m个小朋友手拉手站成一个圈,从第k个小朋友开始报数,报到n的那个小朋友退到圈外,然后他的下一位重新报“1”。这样继续下去,直到只剩下一个小朋友,求解这个小朋友原来站什么地方。

    约瑟夫环问题. package pack; import java.util.*; public class demo_2 { static int a[]; public static void m ...

  3. Mvc Session 设置以后再构造函数中取值时为null问题

    在登录界面写了一个session在 别的页面的构造函数中获取始终未null  后来改成 System.Web.HttpContext.Current.Session["User"] ...

  4. Golang之接口

  5. Hi3519V101+IMX274开发板调试经验

    1.uboot没换 2.内核网络不对,其它的正常, sudo apt-get install libncurses5-dev sudo apt-get install u-boot-tools 3.根 ...

  6. C# 控件消失等问题

    控件消失原因: 1.新控件的触发导致页面重载,该重载有没有达到原有控件的触发状态进而消失. 2.(目前只发现这一点,后续又发现再更...) 1.示例: ASPX: <div> <!- ...

  7. BootStrap小知识随笔

    1.让label和input在一行显示 添加class "form-inline"就可以了.如 <table class="table table-bordered ...

  8. nginx 配置说明

    ======nginx 配置文件分开==== http://blog.csdn.net/baple/article/details/44197981 1.备份现在有nginx.conf2.复制ngin ...

  9. C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

    如何获取指定数据表的所有字段名和字段类型.SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, Stri ...

  10. Browser Page Parsing Details

    Browser Work: 1.输入网址.  2.浏览器查找域名的IP地址.  3. 浏览器给web服务器发送一个HTTP请求  4. 网站服务的永久重定向响应  5. 浏览器跟踪重定向地址 现在,浏 ...