在显示复杂的文本样式时,通常采用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. Teaching yourself programming -一个编程爱好者的碎碎念

    多数时候,个人活动的展开都源于某个具体的动机.或许你是为了可以写点小工具,解决日常生活中的一些重复劳动:或许,你心怀梦想,梦想着某一天完成一款你心目中完美的游戏:又或许是,你内心憧憬电影里的hack, ...

  2. PTA——求n以内k个质数和

    PTA 7-51 求n以内最大的k个素数以及它们的和 #include<stdio.h> #include<math.h> int isPrime(int n); int ma ...

  3. .singleton.php 文件 (单例模式可被继承 代码实例)

    <?phpnamespace lib;abstract class Singleton{ //设置一个私有的静态属性作为中间变量 private static $instancePool = [ ...

  4. 【开发】iOS入门 - Touch事件处理学习笔记

    网上介绍iOS事件机制的文章,有不少都讲得很好,搬运一次意义不大,这里我就列一些要点吧. 跟Android一样,iOS的Touch事件也是从外到内传递,然后从内到外响应,可以看成一个U型结构.然而,个 ...

  5. 软件开发者路线图梗概&书摘chapter3

    漫漫长路:自定路线,想象十年后 1.技重于艺:重视客户的交付价值 客户的解决方案与个人内在标准的平衡 2.持续动力:金钱.乐趣.名声 列出五项最重要的动力 3.培养激情:博客.钻研名著.加入学习小组. ...

  6. [Python学习笔记] 字符串类型及操作

    字符串处理 索引:返回字符串中单个字符 <字符串>[M] 切片:返回字符串中一段字符子串 <字符串>[M:N:K] 字符串格式化使用.format()方法

  7. C# 关于变量使用范围容易犯错的问题(TreeView数据绑定为例)

    asp.net做一个treeview数据绑定 绑定子节点时查询出来的数据正确,但在进行数据绑定时一直索引溢出 然后调试 ... 调试 ... 再调试... 依然很崩溃  想到了是变量定义后面共用后的问 ...

  8. face_recognition

    人脸定位import face_recognition image = face_recognition.load_image_file("your_file.jpg") face ...

  9. 2-Add Two Numbers @LeetCode

    2-Add Two Numbers @LeetCode 题目 思路 题目中得到的信息有: 这是两个非负数,每位分别保存在链表的一个结点上: 逆序保存,从低位到高位依次. 一般整数的相加都是从低往高进行 ...

  10. c++——大端序,小端序的排列问题

    #include<iostream> using namespace std; union TestModel { int i; char ch; }; int main() { unio ...