2

我正在尝试使用 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;
...

我可以解析并加载第一张图片,但是我不知道下一步是如何获取其他图片?谢谢您的帮助。

4

1 回答 1

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));
于 2013-04-12T04:50:33.137 回答