防微博内容展示,使用Html.fromHtml(),解决内容不能换行的问题
来源:互联网 发布:windows update 编辑:程序博客网 时间:2024/06/06 03:48
使用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","<br>");}return content;}六、 总结
来自地球的小伙伴们,如上只是这个小问题的解决思路,聪明的你一定会举一反三,在parseContent中去充分发挥,解决其他的问题,今天是七夕,祝情人节快乐奥,O(∩_∩)O哈哈~
- 防微博内容展示,使用Html.fromHtml(),解决内容不能换行的问题
- CSS解决内容换行问题
- Android Html.fromHtml的使用
- 解决bootstrap table 内容换行不整齐的问题
- 解决html 展示一长串数字不能自动换行
- 解决html不能自动换行问题
- 后台返回内容展示在JSP页面回车换行消失的问题
- Html.fromHtml()中Html.TagHandler()的使用
- Html.fromHtml()中Html.TagHandler()的使用
- 解决有的PDF内容不能复制的问题
- 解决<span>标签内容改变,不能触发方法的问题
- 怎么解决jsoup不能完整获取响应内容的问题
- Html.fromHtml(String)已经过时的问题
- html td 换行-解决长串英文字母或者数字不能自动换行的问题
- textarea 内容换行问题
- android提取数据库内容的展示问题
- android提取数据库内容的展示问题
- 用sax读取XML时不能读取换行符号后面的内容的问题
- Java自学之路--Java类型、变量与运算符详解
- Linux 时钟处理机制
- 获取ios系统的电池电量比例,是否充电中,是否充满
- BLE简介及连接过程
- Unicode与UTF-8互转(C语言实现)
- 防微博内容展示,使用Html.fromHtml(),解决内容不能换行的问题
- unity换装,SkinnedMeshRender
- 最大权闭合子图的简单证明
- OpenGL中的绘制命令
- ZOJ 3699 Dakar Rally(贪心)
- 倒排索引
- Android view更改背景资源,padding消失的问题
- ZooKeeper开发手册中文翻译
- 一个Myeclipse同时配置多个Tomcat