【发布时间】:2012-10-26 23:14:14
【问题描述】:
我正在使用 Html.fromHtml 来获取描述标签的内容(在提要 XML 中),它工作正常
描述标签:
<description><![CDATA[<div class="K2FeedIntroText"><p><img style="margin: 10px; float: left;" alt="block curta" src="http://loc.grupolusofona.pt/images/stories/destaques/block%20curta.jpg" height="110" width="120" />Quatro Horas Descalço é o nome da curta-metragem, realizada por Ico Costa, que se estreia mundialmente no 7.º Festival Internacional de Cinema de Roma, nos dias 12 e 13 de novembro, em competição no Cinema XXI.</p>
]]>
但当我查看documentation 时,它说:
Returns displayable styled text from the provided HTML string. Any <img> tags in the HTML will display as a generic replacement image which your program can then go through and replace with real images.
所以我的问题是:我该如何做它所说的“然后你的程序可以通过并替换为真实图像”?
我知道如何通过 RegEx 使用 Pattern 获取 img url,我只是想知道如何使用该类“通过并用图像替换它”
如果我不清楚,请说些什么,我会尝试更好地解释它。
编辑:
好吧,我正在尝试在一个简单的 rss 阅读器中实现这一点(并尝试在代码方面使其尽可能简单)
我正在使用一个 DOM 解析器,我正在使用一个 map = HashMap<String, Spanned> 来存储每个子节点的值,以及一个 KEY:
map.put(KEY_DESC, Html.fromHtml(parser.getValue(e, KEY_DESC)));
在答案的 cmets 中,我发现了一个有用的 link,我从中创建了一个新类 (URLImageParser) 并尝试像这样使用它:
map.put(KEY_DESC, htmlSpan);
htmlSpan 的结果是:
this.textView = (TextView)this.findViewById(R.id.textview);
URLImageParser p = new URLImageParser(textView, this);
Spanned htmlSpan = Html.fromHtml(html, p, null);
textView.setText(htmlSpan);
我还创建了一个 android:visibility="gone" TextView 以防万一它需要将值存储在 TextView 中(也许我解释错了)
我最初的想法是 htmlSpan 属于 Spanned 类型,因此它可以很好地适合我的 HashMap。
为了上传到 ListView,我使用 SimpleAdapter,如下所示:
ListAdapter adapter = new SimpleAdapter(this, menuItems, R.layout.linhafeed,
new String[] { KEY_TITLE, KEY_DESC, KEY_PUBDATE, KEY_LINK },
new int[] { R.id.title, R.id.desc, R.id.pub, R.id.link });
menuItems 是 ArrayList<HashMap<String,Spanned>>
这里有什么问题吗?
【问题讨论】:
标签: android html xml class parsing