L
Lainio
Ambitioniertes Mitglied
- 3
Hallo liebe Leute,
ich habe das Problem das nach meinem return-Befehl in der doInBackground-Methode nicht in die onPostExecute gesprungen wird.
Hier mein Quelltext:
doInBackground:
onPostExecute:
Das Problem ist das diese Methode gar nicht aufgerufen wird.
Sprich meine App startet, aber in der listview wird nichts dargestellt.
könnt ihr meinen Fehler finden?
ich habe das Problem das nach meinem return-Befehl in der doInBackground-Methode nicht in die onPostExecute gesprungen wird.
Hier mein Quelltext:
doInBackground:
PHP:
public class DownloadXMLFiles extends AsyncTask<URL, Integer, ArrayList<HashMap<String,String>>> {
@Override
protected ArrayList<HashMap<String, String>> doInBackground(URL... urls) {
XMLParser parser = new XMLParser();
String xml = parser.getXMLFromUrl("http://testseide.de/info.xml");
Document doc = parser.getDomElement(xml);
ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
NodeList nl = doc.getElementsByTagName(KEY_SYSTEM);
for (int i = 0; i < nl.getLength(); i++) {
// Neue HashMap erstellen
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
// Jedes Kind-Knoten zur HashMap
map.put(KEY_UUID, doc.getElementsByTagName("uuid").toString());
map.put(KEY_NAME, doc.getElementsByTagName("name").toString());
map.put(KEY_JOBTITLE, doc.getElementsByTagName("jobtitle").toString());
map.put(KEY_JOBINFO, doc.getElementsByTagName("jobinfo").toString());
//Hashmap zur ArrayList hinzufügen
menuItems.add(map);
}
return menuItems;
}
onPostExecute:
PHP:
protected void onPostExecute(ArrayList<HashMap<String,String>> menuItems) {
ListAdapter adapter = new SimpleAdapter(ListViewActivity.this, menuItems,
R.layout.list_item,
new String[]{KEY_NAME, KEY_JOBTITLE, KEY_JOBINFO}, new int[]{
R.id.name, R.id.jobtitle, R.id.jobinfo});
ListView lv = getListView();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String name = ((TextView) view.findViewById(R.id.name)).getText().toString();
String jobtitle = ((TextView) view.findViewById(R.id.jobtitle)).getText().toString();
String jobinfo = ((TextView) view.findViewById(R.id.jobinfo)).getText().toString();
//Neue Oberfläche starten
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
in.putExtra(KEY_NAME, name);
in.putExtra(KEY_JOBTITLE, jobtitle);
in.putExtra(KEY_JOBINFO, jobinfo);
startActivity(in);
}
});
}
Das Problem ist das diese Methode gar nicht aufgerufen wird.
Sprich meine App startet, aber in der listview wird nichts dargestellt.
könnt ihr meinen Fehler finden?