Есть следующий рабочий код:
try {
XmlPullParser parser = getResources().getXml(R.xml.myxml);
while (parser.next() != XmlPullParser.END_DOCUMENT) {
tagname = parser.getName();
switch (parser.getEventType()){
case XmlPullParser.START_TAG:
if (tagname != null && tagname.equals(displayname)) {
items.add(new SomeItem(tagtext, myBitmap));
}
if (tagname != null && tagname.equals(iconsrc)){
iconsrcVALUE = parser.getAttributeValue(0);
myBitmap = new AsyncForBitmap().execute(iconsrcVALUE).get();
}
break;
case XmlPullParser.TEXT :
tagtext = parser.getText();
break;
case XmlPullParser.END_TAG:
break;
}
}
} catch (Throwable t) {
Toast.makeText(this,
"Ошибка при загрузке XML-документа: " + t.toString(), Toast.LENGTH_LONG)
.show();
}
На выходе получаю listview с необходимыми элементами, но 0й индекс ListView остаётся пустым, а последнего элемента не хватает:
Пустота
Изображение, текст, прочая инфа
Изображение, текст, прочая инфа
...
n. Предпоследний элемент из xml, который парсится.
Грешу на неправильное обращение с "case" START_TAG и END_TAG. Пытался комбинировать, менять местами, но решение так и не нашёл. Буду рад не просто рабочему коду, а объяснению, почему то или иное действие необходимо делать именно в таком "case".
Продвижение своими сайтами как стратегия роста и независимости