Activity neu zeichnen

  • Antworten:7
  • Bentwortet
Dani Sahne
  • Forum-Beiträge: 107

08.09.2013, 17:32:05 via Website

Hallo,

in meiner App hab ich eine HistoryActivity mit einer Listview und einem Button, die ListView gibt Zeile für Zeile eine DB aus, der Button leert die DB, wenn ich den Button drücke passiert erst mal nix, wenn ich aber zurück zur MainActivity geh, und dann nochmal in die HistoryActivity geh ist die ListView wie gewollt leer, gibt es eine Möglichkeit beim Buttonclick die Activity neuzuzeichnen oder ähnliches?

Mfg Dani

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

08.09.2013, 19:18:47 via Website

In diesem Fall musst du nur dem Adapter deiner Liste mitteilen, das sich die Daten geändert haben (notifyDataChanged(), wenn es sich um einen CursorAdapter handelt oder du die Datenbasis des Adapters ebenfalls geleert hast)

Antworten
Dani Sahne
  • Forum-Beiträge: 107

08.09.2013, 20:29:50 via Website

und wie genau geht das dann, so?
1ArrayAdapter<String> aad = new ArrayAdapter<String>();
2aad.notifyDataChanged();

— geändert am 08.09.2013, 22:47:24

Antworten
Dani Sahne
  • Forum-Beiträge: 107

08.09.2013, 22:47:55 via Website

Mir ist grad selber aufgefallen, dass ich auch einfach hätte googeln können :D Shame on me

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

08.09.2013, 23:19:55 via Website

Funktioniert es denn jetzt wie gewünscht?

Antworten
Dani Sahne
  • Forum-Beiträge: 107

09.09.2013, 02:55:42 via App

So ungefähr :D ich starte die Activity mit startActivity(getIntent()) einfach neu, siegte zwar noch ganz so toll aus wie gewünscht, aber fürn Anfang reichts und ich kümmer mich erst mal um die restlichen Funktionen der app

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

09.09.2013, 11:10:30 via Website

Das ist aber doch ganz einfach "richtig" zu lösen:
Du hast eine Liste, der du irgendwo einen Adapter zuordnest; diesem Adapter hast du zuvor dein Array zugeordnet und das Array hast du zuvor mit den Werten aus deiner Tabelle befüllt.

Diesen Codeteil verlegst du in eine Funktion, die du dann an der ursprünglichen Stelle des Codes aufrufst -- und nach dem Löschvorgang erneut.

Noch "richtiger" wäre vermutlich der Ansatz, das Array als Member zu halten, es beim Löschvorgang ebenfalls zu leeren und dann notifyDataChanged() auf dem Adapter aufzurufen.

Antworten
Dani Sahne
  • Forum-Beiträge: 107

09.09.2013, 12:50:16 via App

das mit notifyDataChanged hab ich schon versucht, hat aber nicht funktioniert, aber dass passt so vorerst mal

Antworten