我正在尝试使用Android中的Pull Parser来获取image2和image3的值。
<item>
<title>Title Goes Here!</title>
<picture><![CDATA[http://blahblah.image.jpg]]></picture>
<picture><![CDATA[http://blahblah.image2.jpg]]></picture>
<picture><![CDATA[http://blahblah.image3.jpg]]></picture>
</item>
...
case XmlPullParser.END_TAG
if (tagname.equalsIgnoreCase("item")
_feed.addItem(_item);
} else if (tagname.equalsIgnoreCase("title")) {
_item.setTitle(theString)
} else if (tagname.equalsIgnoreCase("picture")) {
_item.setLargeImage(theString)
} else if (tagname.equalsIgnoreCase("picture")) {
_item.setLargeImage2(theString)
} else if (tagname.equalsIgnoreCase("picture")) {
_item.setLargeImage3(theString)
}
break;
...
我可以解析并加载第一张图片,但是,我不知道下一步是什么来获取其他图片?谢谢您的帮助。
答案 0 :(得分:2)
您的代码中存在逻辑错误:
} else if (tagname.equalsIgnoreCase("picture")) {
_item.setLargeImage(theString)
} else if (tagname.equalsIgnoreCase("picture")) {
_item.setLargeImage2(theString)
} else if (tagname.equalsIgnoreCase("picture")) {
_item.setLargeImage3(theString)
}
第二个和第三个else if
条件测试之后的代码永远不会被执行,如果遇到的标记是picture
,控制流将在第一个if (tagname.equalsIgnoreCase("picture"))
结束。
您可以执行以下操作来实现您的目标:
List<String> imageList = new ArrayList<String>();
} else if (tagname.equalsIgnoreCase("picture")) {
imageList.add(theString);
}
// after you finish parsing the xml file, set the image URLs on your item.
_item.setLargeImage(imageList.get(0));
_item.setLargeImage2(imageList.get(1));
_item.setLargeImage3(imageList.get(2));