2013-04-21 3 views
0


При попытке использовать XMLPullParserXmlPullParser.END_DOCUMENT событие никогда не вызывается таким образом код, предполагают, чтобы быть выполнена после того, как во время цикла никогда не выполняется. Как я могу предотвратить это?Android: событие XMLPullParser.END_DOCUMENT никогда не называли

фрагмент кода: не

int eventType = xpp.getEventType(); 
     if(eventType == XmlPullParser.END_DOCUMENT) { 
      Log.i("app", "End"); 
      return farmers.getFarmers(); 
     } 
    while (eventType != XmlPullParser.END_DOCUMENT) { 
      if(eventType == XmlPullParser.START_DOCUMENT) { 
      } else if(eventType == XmlPullParser.START_TAG) { 
       // Do something 
      } else if(eventType == XmlPullParser.END_TAG) { 
       // Do something 
      } else if(eventType == XmlPullParser.TEXT) { 
       // Do something 
      } 
      eventType = xpp.next(); 
      } 
     if(eventType == XmlPullParser.END_DOCUMENT) { 
      Log.i("app", "End"); 
      return farmers.getFarmers(); 
     } 
      return "Some data"; 

Почему возвращение не звонил?

+0

У меня такая же проблема и ответа еще нет - мой цикл while работает бесконечно, проверяя END_DOCUMENT, поэтому этот тип события никогда не происходит. Есть идеи? – Mike

+0

@Mike жаль, что у меня нет способа помочь вам, когда я закончил этот проект некоторое время назад и посмотрел на исходный код, который я переключил на использование анализатора SAX. – camelCaseD

ответ

0

Ну, вы делаете чек для XmlPullParser.END_DOCUMENT в цикле, который работает только в том случае, если eventType не XmlPullParser.END_DOCUMENT, поэтому он никогда не будет запускать этот оператор.

У вас должен быть if(eventType == XmlPullParser.END_DOCUMENT) {} вне цикла.

Редактировать: Я видел ваше редактирование. Да, все еще не обнаружил конца документа ?.

Попробуйте реструктуризацию петли использовать while(true), и положить

else if(eventType == XmlPullParser.END_DOCUMENT) { 
//Do stuff here 
break; 
} 

внутри цикла.

Таким образом, он проходит через весь список и покидает цикл, когда он нажимает END_DOCUMENT. Если петли бесконечно, то я не в идеях: P.

+0

THX для ответа. Но это все равно не помогает. Я обновил свой вопрос, чтобы отразить изменения, которые я сделал. – camelCaseD

+0

Обновленный ответ. –

Смежные вопросы