博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防微博内容展示,使用Html.fromHtml(),解决内容不能换行的问题
阅读量:4701 次
发布时间:2019-06-09

本文共 1579 字,大约阅读时间需要 5 分钟。

 

       使用Html.fromHtml(),解决内容不能换行的问题,模仿微博内容展示效果。

一、需求要实现的效果

        例如以下图中箭头指向的微博内容部分,包括超链接,点击超链接后要跳转到对应的WebView页面。(csdn上传图片试了好多遍也不成功。大家脑补一下吧。辛苦了)。

          

二、 实现思路

        首先获取网络数据。通过Html.fromHtml()解析获取到的数据,这时超链接<a></a>、段落符<p>、换行符<br>等将会被展示成相应的表现形式。就会出现上图所看到的的效果。然后我们解决第二个问题,点击跳转的问题,直接上代码。

      

/** * 设置TextView中URL由内嵌浏览器打开 * @param context * @param textView*/public static void setOpenUrlByBrowser(Context context, TextView textView) {textView.setMovementMethod(LinkMovementMethod.getInstance());CharSequence text = textView.getText();if (text instanceof Spannable) {int end = text.length();Spannable sp = (Spannable) textView.getText();URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);SpannableStringBuilder style = new SpannableStringBuilder(text);style.clearSpans();for (URLSpan url : urls) {MyURLSpan myURLSpan = new MyURLSpan(context, url.getURL());style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}textView.setText(style);}}

        当中主要用到的类有 Spannable、SpannableStringBuilder。假设有不了解两类的同学,能够Google这连个类,后面有时间也会分析这两个类的实现。至于MyURLSpan是自己定义的一个超链接点击之后的操作类,在这里实现界面的跳转。So,我们实现了展示和跳转。

三、 遇到的问题

        如上编码之后,我遇到了文本不能换行的问题。如在我的应用中我发的一遍帖子带有换行的帖子,可是在帖子详情页面没有换行显示。

四、 分析原因

        查看服务端返回的数据,发现时这种。 “ 这是一个測试用的帖子\n我想測试他能不能换行\n”。于是找到了原因,html不能解析“\n”。

五、 解决的方法

         最吊炸天的地方来了,将全部的“\n”转换成“<br>”,代码例如以下,这样就能够解决这个问题。

private String parseContent(String content) {if(StringUtil.isNotEmpty(content)){content = content.replace("\n","
");}return content;}
六、 总结

        来自地球的小伙伴们,如上仅仅是这个小问题的解决思路,聪明的你一定会举一反三。在parseContent中去充分发挥。解决其它的问题,今天是七夕,祝情人节快乐奥,O(∩_∩)O哈哈~

    

转载于:https://www.cnblogs.com/jzdwajue/p/6999501.html

你可能感兴趣的文章
HTML5项目笔记4:使用Audio API设计绚丽的HTML5音乐播放器
查看>>
[小白知识记录]--浏览器打开一个新窗口记录
查看>>
C++ Prime:const的引用
查看>>
SVM
查看>>
Java中删除文件、删除目录及目录下所有文件
查看>>
MiCode108 猜数字
查看>>
在Eclipse中Attach Source
查看>>
<Unity项目框架相关>一
查看>>
Vim 基本命令入门
查看>>
Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)...
查看>>
不走弯路,就是捷径
查看>>
函数的记忆
查看>>
Linux centos7安装Mongodb
查看>>
svn自动备份并上传到ftp
查看>>
uTenux-OS-Task再探
查看>>
git
查看>>
#备注贴# 关于Java保真压缩的问题
查看>>
程序员50题(JS版本)(五)
查看>>
phpRedisAdmin安装
查看>>
一次搞懂全排列——LeetCode四道Permutations问题详解
查看>>