XMLPullParser обрезает последний элемент

185
11 января 2020, 02:10

Есть следующий рабочий код:

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 остаётся пустым, а последнего элемента не хватает:

  1. Пустота

  2. Изображение, текст, прочая инфа

  3. Изображение, текст, прочая инфа

...

n. Предпоследний элемент из xml, который парсится.

Грешу на неправильное обращение с "case" START_TAG и END_TAG. Пытался комбинировать, менять местами, но решение так и не нашёл. Буду рад не просто рабочему коду, а объяснению, почему то или иное действие необходимо делать именно в таком "case".

READ ALSO
Пересекаются ли прямоугольники?

Пересекаются ли прямоугольники?

Первая строка входных данных содержит четыре целых числа

247
Как в Андроид Студио создать онлайн режим? [закрыт]

Как в Андроид Студио создать онлайн режим? [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав его

225
Ошибка при добавлении столбца в SQL

Ошибка при добавлении столбца в SQL

Помогите с решением, я добавил новый столбец в таблицу SQLНо в логах выводится ошибка такого рода:

289
Прошу помощи с микросервисами

Прошу помощи с микросервисами

Пишу тестовый микросервис с авторизацией JWT

268