首页新闻找找看学习计划

【求助】解析网页后填充到TextView里,链接不能点击的问题!

0
悬赏园豆:15 [待解决问题]

谢谢大家!
我是用Jsoup解析得到网页的Document对象,然后:
Element AnswersDiv = doc.getElementById("zh-question-answer-wrap");
String contentStr = AnswersDiv.html();
content.setText(Html.fromHtml(contentStr)); //content是我的TextView对象
content.setMovementMethod(LinkMovementMethod.getInstance()); //为了使TextView上的链接能点击


这样在Activity上显示了网页内容,但是上面的文字超链接和网址链接不能点,一点纠错,说Intent有问题,打不开指定的Activity,我发现网页的源码中网址链接前面都带“goto”的前缀,例如:
href="/goto/http://www.zhihu.com/question/21503933"
应该是因为这个原因吧?应该怎么改呢?

 

忍者乱泰郎的主页 忍者乱泰郎 | 初学一级 | 园豆:189
提问于:2013-12-31 12:59
< >
分享
所有回答(1)
0

问题已经解决,用Jsoup.parse()获取到Document对象之后,先使用一系列方法(包括选择器)修改Document对象中a标签的href值(把“goto”全去掉),就可以了。

这是修改后的代码:

try {
                    doc = Jsoup.parse(new URL(href), 5000);
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                // 去广告
                doc.select(
                        "[style=float:left;padding:2px;overflow:hidden;margin:3px 2px 1px 0px;]")
                        .remove();
                // 修改超链接的href属性(去掉"/goto/"前缀)
                Elements es = doc.select("a[href^=/goto/]");
                for (Element e : es) {
                    String hrefHead = e.attr("href");
                    e.removeAttr("href");
                    e.attr("href", hrefHead.substring(6));
                }
                Element main = doc.getElementsByClass("main").first();
                titleStr = main.getElementsByTag("h2").first().text();
                contentStr = main.getElementsByClass("article").first().html();
忍者乱泰郎 | 园豆:189 (初学一级) | 2013-12-31 20:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册