2014-10-25 28 views
7

Ich habe eine RecyclerView implementiert und ich habe es eingerichtet, zu verwenden. Aber wie kann ich die ausgewählten Artikel hervorheben? Wenn eine bestimmte Position überprüft ich in einem SparseBooleanArray gespeichert. Mein erster Gedanke war, die spezifischen View mit allen Elementen in meinem ViewHolder und dann in onBindViewHolder Hintergrund irgendwie zu speichern: ?android:attr/activatedBackgroundIndicator Aber wie kann ich das tun? Ist das ein nützlicher Ansatz?RecyclerView: Markieren Sie das ausgewählte Element

+1

Wurde das jemals gelöst? – MDragon00

Antwort

3

ich dies schließlich gelöst, indem einfach ein paar kleinere Dinge hinzufügen:

Zunächst einmal die Elemente des RecyclerView haben dies als Hintergrund verwenden:

android:background="?android:attr/activatedBackgroundIndicator" 

Dann gilt für die RecyclerView einfach anrufen : setSelected(true); zu den einzelnen Ansichten.

+0

können Sie bitte den vollständigen Code schreiben? Es hat nicht für mich funktioniert – suku

+0

@Paul Woitaschek können Sie einen Code zur Verfügung stellen, wie Sie es bitte gelöst haben? –

+0

@PaulWoitaschek es hat nicht funktioniert – Sam

1

Wenn Sie die Ansicht selbst ändern möchten, müssen Sie adapter.notifyItemChanged (Position) senden, und im Gegenzug ruft die Recycler-Ansicht die onBind-Methode auf, in der Sie den Hintergrund festlegen können.

Wenn Sie die Ansicht nicht aktualisieren müssen, würde ich vorschlagen, einen Artikel Dekorator zu verwenden.

+1

Was meinst du, ohne die Ansicht selbst aktualisieren zu müssen? Wie kann ich ein einzelnes Objekt in einer Ansicht mit Objektdekorator dekorieren? Und wie kann ich den Hintergrund mit Android: attr/activatedBackgroundIndicator? –

Verwandte Themen