1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. searcher73, 16.07.2012 #1
    searcher73

    searcher73 Threadstarter Neuer Benutzer

    Hallo,
    ich habe ein Problem bei der Darstellung von Daten aus einer Arraylist in einem eigenen ArrayAdapter und einer ListView.

    Meine App soll folgende Funktion beinhalten:
    Ich habe eine JSON-Baumstruktur. Durch diese Baumstruktur möchte ich mich mittels einer ListView bewegen
    Die JSON-Objekte, die unter einem Eintrag gespeichert sind liegen immer jeweils in einer ArrayList. Diese wird quasi immer neu über einen Aufruf einer Webadresse zusammengebaut.
    Den Namen eines JSON-Objektes zeige ich dann über meinen eigenen ArrayAdapter an.

    Wenn ich ein Element auswähle, möchte ich in meiner Listview die neuen Daten anzeigen, die unter meinem gewählten Eintrag dargestellt werden.
    Weiterhin möchte ich mich im Baum wieder zurück bewegen können.
    Dazu habe ich einen Button. Beim Click auf den Button soll im Baum wieder eine Ebene nach oben gegangen werden und die Daten in der Liste aktualisiert werden. (Die Activity bleibt die selbe)

    Meinen eigenen ArrayAdapter habe erstellt.
    In der onCreate-Methode meiner Activity habe ich Folgendes programmiert:

    // neue Array Liste anlegen, die die JSON-Objekte enthält
    ArrayList<JSONObject> mylist = new ArrayList<JSONObject>();
    // meinen eigenen Adapter instanziieren
    JSONArrayAdapter adapter = new JSONArrayAdapter(this, mylist);
    ...
    // Liste füllen und darstellen
    JSONfunctions.fillArrayList(json, null, mylist );
    setListAdapter(adapter);

    Das Anzeigen funktioniert auch

    Nun meine beiden Probleme.
    Bei der Auswahl eines Listeneintrages (über onClickItemList)
    möchte ich nun die Objekte anzeigen, die unter dem gewählten Objekt liegen.

    Hier habe ich wieder ähnlichen Einträge eingetragen wie in der onCreate-Methode:
    ArrayList<JSONObject> mylist = new ArrayList<JSONObject>();
    JSONfunctions.fillArrayList( json, parentjson, mylist);
    JSONArrayAdapter adapter = new JSONArrayAdapter(this, mylist);
    setListAdapter(adapter);

    auch das funktioniert, allerdings muss ich einen neuen Adapter instanziieren,
    hier hoffe ich, dass das Anders geht.

    Für den Button geht das so nicht, da ich this nicht beim Anlegen des ArrayAdapters verwenden kann. ("this" wird von Eclipse rot markiert)

    Meine Frage:
    Wie muss ich den ArrayAdapter handhaben, wenn ich die Daten in meiner Listview aktualisieren möchte z.B. beim Druck auf einen Button.
    Hierzue lege ich in der onCreate-Methode einen Button an und überschreibe die onClick-Methode. Allerdings kann ich dort keinen Adpter neu anlegen, so wie ich das in der Funktion onClickItemList() mache.

    Muss ich jedesmal ein neuer Adapter angelegt werden?

    Es gibt ja auch die Möglichkeit, über
    adapter.notifyDataSetChanged();
    dem Adapter mitzuteilen, das neue Daten da sind.
    Aber wie habe ich in einer onClick-Funktion Zugriff auf den Adapter?

    Dieser wird doch in der onCreate-Methode angelegt und ist auch nur dort gültig oder?


    Vielen Dank für Eure Hilfe
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Frage zum Einsatz von Qualifiers für die dimens.xml Android App Entwicklung 30.08.2017
[ERLEDIGT] Fragen zur Play Developer Console, wie Steuern etc. Android App Entwicklung 29.08.2017
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[ERLEDIGT] Fragen zum Einstieg in APP-Entwicklung Android App Entwicklung 01.08.2017
[ERLEDIGT] Frage zu Datenschutz bei Appveröffentlichung Android App Entwicklung 31.07.2017
[ERLEDIGT] Daten/Code meiner App speichern? Android App Entwicklung 27.07.2017
[ERLEDIGT] Frage zu den drawable-Ordnern Android App Entwicklung 20.05.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017
[ERLEDIGT] Drawer mit scrollbarem Listview Android App Entwicklung 27.03.2017
Du betrachtest das Thema "Frage zu Darstellung von Daten in ListView und ListActivity" im Forum "Android App Entwicklung",