2016-04-25 13 views
0

Ich habe viele der vorherigen Beiträge zu diesem Thema gelesen, aber ich bekomme es nicht richtig.SwipeMenuListView new Zeile hinzugefügt zeigt Erstmals Daten

Ich habe einen Adapter, der eine private Werte der Elemente in der Liste hat. Wenn ich die Werte aktualisiere (ein neues Element hinzufügen), beobachte ich den Wert im Debugger und die Funktion "getView" und sehe, dass der Wert korrekt ist.

ABER die tatsächliche rowView, die ich sehe, ist nur das erste Element in der Liste.

Ich habe keine Ahnung, was das verursachen kann.

Diese Listenansicht ist in derselben Aktivität, während ich ein anderes Layout anzeigen und die Listenansicht ausblenden, um ein neues Element hinzuzufügen.

Kann es eine Verbindung geben, während die Listview-Sichtbarkeit "GONE" ist? Wenn ich Objekte daraus lösche, wird die Listenansicht aktualisiert (dies geschieht, wenn ListView sichtbar ist).

private void updateAdapter() { 
    this.values.clear(); 
    this.values.addAll(staticlistIndifferentclass); 
    notifyDataSetChanged(); 
} 

~~~~ UPDATE ~~~~ Ok, So entdeckte ich die Ursache des Problems, obwohl ich nicht sicher bin, warum es ist. Der Code war in Ordnung so, wie es war mit regelmäßiger Listview aber der Fehler ist auf:

com.baoyz.swipemenulistview.SwipeMenuListView

+0

Wiederaufbau Können Sie das Stück Code von 'adapter' Klasse teilen ?? und auch, wo das notifydatasetchanged verwendet wurde –

+0

Kannst du angeben, wie du den Adapter initialisierst? – Raghavendra

+0

Wie hast du das gelöst? –

Antwort

0

Verwenden Sie neues Adapter Objekt wie folgt:

listView.setAdapter(new yourCustomAdapter()); 

Wenn Sie löschen alle DataSet-Elemente, es ist besser, neue Adapter Objekt zu binden.

+0

Das Erstellen eines neuen Adapters bei jeder Änderung der Liste ist nicht korrekt. – Shaul

0

Ausprobieren Verwenden ListView.invalidateViews

Diese Ansichten führen sollte

+0

Hat es nicht gelöst. Beachten Sie, dass ich ein Udpate hinzugefügt habe – Shaul

Verwandte Themen