2016-11-18 4 views
0

Ich versuche, das RecyclerView-Element mit dem folgenden Code-Snippet zu aktualisieren.Wie wird ein einzelnes Objekt in der Recycleransicht aktualisiert?

public void setItemToPostion(WatchListEpisodeBean watchListBean, int itemPosition) { 
    this.watchListBean.add(itemPosition, watchListBean); 
    notifyItemChanged(itemPosition); 
} 

Es funktioniert gut. Das ist ein Element an der Position, das mit neuen Daten aktualisiert wurde. Das Problem ist jedoch, dass das Objekt an die nächste Position geklont wird (erscheint an der nächsten Position). Ich finde nicht, was mit meinem Code nicht stimmt.

Dies ist AppCompat & Unterstützung Design lib Versionen:

compile 'com.android.support:appcompat-v7:23.2.0' 
compile 'com.android.support:design:23.2.0' 

Bitte mir helfen, dieses Problem zu beheben. Danke im Voraus.

+0

Geben Sie den Adaptercode an, an dem Sie die obige Methode aufrufen. – Raghavendra

+0

bekam die Antwort Rahavendra ... Danke ... –

Antwort

6

Ihr Artikel ist Klon, weil Sie Element hinzufügen.

Versuchen set statt add wie diese

public void setItemToPostion(WatchListEpisodeBean watchListBean, int itemPosition) { 
    this.watchListBean.set(itemPosition, watchListBean); 
    notifyItemChanged(itemPosition); 
} 
-1

Verwenden notifyDataSetChanged(); statt notifyItemChanged(itemPosition);

+1

Jinal Patel, können Sie bitte erklären, warum? –

1

zu verwenden Wenn Sie einfach nur einen Teil der Ansicht zu aktualisieren, verwenden Sie die notifyItemChanged() statt notifiyDataSetChanged(). Der Unterschied hier hat mit strukturelle Änderungen vs Artikeländerungen zu tun. Dies ist auf der Android-Entwickler RecyclerView.Adapter Dokumentation gefunden .

Hier ist ein weiteres Schmankerl auf die Unterschiede zwischen den beiden Arten von Änderungen:

Es gibt zwei verschiedene Klassen von Datenänderungsereignisse, Punkt ändert und strukturelle Veränderungen. Elementänderungen sind, wenn für ein einzelnes Element die Daten aktualisiert wurden, aber keine Positionsänderungen aufgetreten sind. Strukturelle Änderungen sind, wenn Elemente innerhalb der Daten gesetzt, entfernt oder verschoben werden.

Verwandte Themen