0
目前Java中的新功能。 我有这个代码,我想存储ListView的XML解析数据。但是当我尝试在logcat中显示我的ArrayList的内容时,它会给我这个[email protected]
。我没有正确存储数据还是有其他错误?有人可以在这个问题上启发我。无法显示我的ArrayList
这是我的解析方法
public void parseXMLAndStoreIt(XmlPullParser myParser) {
int event;
String text=null;
try {
event = myParser.getEventType();
FeedItem item = new FeedItem();
while (event != XmlPullParser.END_DOCUMENT) {
String tagName = myParser.getName();
switch (event){
case XmlPullParser.START_TAG:
if(tagName.equalsIgnoreCase("item")){
int eventChild = myParser.next();
while(eventChild != XmlPullParser.END_DOCUMENT){
String tagNameChild = myParser.getName();
switch (eventChild){
case XmlPullParser.START_TAG:
break;
case XmlPullParser.TEXT:
text = myParser.getText();
break;
case XmlPullParser.END_TAG:
if(tagNameChild.equalsIgnoreCase("title")){
item.setTitle(text);
feedItems.add(item);
Log.d("Title", item.getTitle());
}
else if(tagNameChild.equalsIgnoreCase("link")){
item.setLink(text);
feedItems.add(item);
Log.d("Link", item.getLink());
}
else if(tagNameChild.equalsIgnoreCase("description")){
String plain = Html.fromHtml(text).toString();
//stripHtml(text);
item.setDescription(plain);
feedItems.add(item);
Log.d("Description", item.getDescription());
}
else if(tagNameChild.equalsIgnoreCase("pubDate")){
item.setPubDate(text);
feedItems.add(item);
Log.d("pubDate", item.getPubDate());
//Log.d("pudDate",text);
}
else if(tagNameChild.equalsIgnoreCase("media:thumbnail") || tagNameChild.equalsIgnoreCase("media:content") || tagName.equalsIgnoreCase("enclosure")){
//Output test
if(myParser.getAttributeValue(null,"url") != null) {
item.setThumbnailUrl(text);
feedItems.add(item);
Log.d("Thumbnail", item.getThumbnailUrl());
//Log.d("ItemThumbnailUrl",myParser.getAttributeValue(null,"url"));
}
}
else if(tagNameChild.equalsIgnoreCase("item")){
Log.d("Test", "" + feedItems.get(1));
}
break;
}
eventChild = myParser.next();
/*feedItems.add(item);
Log.d("Title", item.getTitle());
Log.d("Link", item.getLink());
Log.d("Description", item.getDescription());
Log.d("pubDate", item.getPubDate());
Log.d("Thumbnail", item.getThumbnailUrl());*/
}
}
break;
case XmlPullParser.TEXT:
break;
case XmlPullParser.END_TAG:
break;
}
event = myParser.next();
}
parsingComplete = false;
}
catch (Exception e) {
e.printStackTrace();
}
}
你用什么适配器?它看起来像是在它期望的字符串处传递了一个FeedItem数组。 –
给你什么......是对一个没有实现toString()的类的toString()的调用,所以你从java.lang.Object得到了默认的实现,它只是为每个对象打印“引用” 。关于代码质量的注意事项:不要将太多代码推入** one **方法。例如,请阅读“干净的代码”和“单层抽象”。基本上,你写在那里是**难**测试;更糟糕的是:它很快就会变成维修噩梦。是的,让事情工作很重要,但编写可以理解的代码更重要! – GhostCat
@GhostCat谢谢。我知道我现在出了什么问题。这只是我在线学习的一个教程。我会确保阅读它。 –