Wie lösche ich ein Element von meinem benutzerdefinierten Basisadapter?

8

Ich erweitere BaseAdapter, um eine benutzerdefinierte Listview-Zeile zu erstellen. Ich habe ein Kontextmenü, das sich jedes Mal öffnet, wenn ein Benutzer in der Zeile hält und fragt, ob er es löschen möchte. Wie entferne ich die Zeile? Die Hashmap ist nur Testdaten.

%Vor%     
LuckyLuke 10.09.2011, 14:14
quelle

3 Antworten

15

Sie löschen nicht vom Adapter! Sie löschen von den Elementen! und der Adapter befindet sich zwischen Ihren Elementen und der Ansicht. Aus der Ansicht können Sie die Position abrufen und entsprechend der Position können Sie Elemente löschen. Dann aktualisiert der Adapter Ihre Ansichten.

Das bedeutet, dass Sie so etwas tun müssen

%Vor%     
Lukap 10.09.2011, 14:37
quelle
10

Um zu löschen, müssen Sie 2 Dinge tun:

  1. Rufen Sie .remove() auf Ihrer ArrayList (Elemente) auf.
  2. Rufen Sie .notifyDataSetChanged() für die Instanz Ihrer MyListAdapter -Klasse ( mListAdapter ).
  3. auf
SBerg413 10.09.2011 14:42
quelle
1
  1. Entfernen Sie Artikel von Artikeln
  2. rufe BaseAdapter.notifyDataSetChanged() auf. Dann wird die Listenansicht neu gezeichnet und die Zielzeile wird vom Bildschirm entfernt.
kingori 10.09.2011 14:37
quelle

Tags und Links