当我尝试从XML获取信息到字符串数组时,我遇到了问题。 如果我在以下情况下只有一个法规,那么工作正常吗: if(eventType == XmlPullParser.START_TAG){...}
事情就是这样,我想把不同的东西带到我的阵列,“过敏原”和“Artikelbenamning”。不确定问题是在doInBackground还是在onPostExecute中。
对我做错了什么的任何建议?该应用程序不会崩溃它只是从不提供数据。
protected ArrayList<String> doInBackground(String[] params) {
ArrayList<String>titles=new ArrayList<>();
try {
URL url = new URL(params[0]);
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(url.openConnection().getInputStream(), "UTF_8");
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
if (xpp.getName().equalsIgnoreCase("Allergen")) {
titles.add(xpp.nextText());
allergen=xpp.nextText();
}
if (xpp.getName().equalsIgnoreCase("Artikelbenamning")) {
titles.add(xpp.nextText());
namn=xpp.nextText();
}
}
eventType = xpp.next();
}//end while
}//end try
catch(MalformedURLException exp){
}
catch(IOException exp){
}
catch(XmlPullParserException exp){
}
return titles;
}
protected void onPostExecute(ArrayList<String> titleResult){
ListView listView=(ListView)findViewById(R.id.listView);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,titleResult);
listView.setAdapter(adapter);
if(dialog.isShowing()){
dialog.dismiss();
}
}