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謝謝。我知道我現在出了什麼問題。這只是我在線學習的一個教程。我會確保閱讀它。 –