Ich versuche eine Gridview einzurichten, die aktualisiert wird, wenn eine neue Suche ausgeführt wird.Android - GridView auf Knopfdruck aktualisieren
das ist mein Aufruf an die gridview
final GridElement_Results adapter = new GridElement_Results(this, savedInstanceState, track_name, album_name, track_num, album_id, album_link);
grid = (GridView)findViewById(R.id.grid_results);
grid.setAdapter(adapter);
Wie Sie sehen können einrichten, ich habe es eine Reihe von Arrays bin vorbei.
Auf Knopfdruck wird die Funktion getTracks() aufgerufen, die neue Daten vom Server bekommt. Die Arrays werden mit den neuen Daten aktualisiert, die ich verifiziert habe.
icon_activesearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getTracks("newsearchterm");
adapter.notifyDataSetChanged();
grid.invalidateViews();
}
}
);
Und dann rufe ich adapter.notifyDataSetChanged() und grid.invalidateViews() zu aktualisieren und das Gitter neu zu zeichnen. Aber offensichtlich mache ich hier etwas falsch.
Liegt es daran, dass ich den Adapter als endgültig setze? Um darauf innerhalb der onClick-Methode zuzugreifen, muss ich es auf final setzen.
Was soll ich ändern, damit es funktioniert?
hinzufügen 'getTracks()' Methode –
Sie die neuen Ergebnisse zu Ihrem Adapter vorbei sind? – Francesc
von dem, was ich sehe, übergeben Sie kein Objekt vom Typ List, ArrayList oder Array an Ihren Adapter. Wie genau erhält der Adapter die Daten, die er anzeigt? – Anonymous