Recyclerview Item im Code laden

  • Antworten:3
  • Bentwortet
Volkan Aydin
  • Forum-Beiträge: 187

08.02.2022, 19:45:24 via Website

Hallo zusammen

Ich bin etwas verwirrt und stehe total auf dem Schlauch.

Ich habe das eine Problem,gleich an zwei stellen.

Folgende Situation.
In der MainActivity, lade ich links ein Recyclerview mit den "Gästen".
Clicke ich auf diese wird in im FragmentView die bestellten Artikel angezeigt.
Dass Item im Recyclerview mit dem Gastnamen bekommt einen anderen Backgroundcolor. soweit so gut.

1.
Nun öffne ich eine neue Activity ( ohne Callback ) die Karte wird für den Gast angezeigt, nach seiner Auswahl wird diese Activity geschlossen, die MainActivity kommt wieder in den Vordergrund. DAS zuvor ausgewählte Fragment ist immer noch geladen ist, und auch den neuen Artikel anzeigt ( Firebase Echtszeitdatenbank ) .Im Recyclerview ist der selectierte Gast aber nicht mehr ausgewählt.

2.
Die Artikel sind per Ontouch und Drag and drag übertragbar (Kopieren/ verschieben) auf andere Gäste.
Das heisst, ich packe den Artikel per OnTouch , lege ihn über die ZielPerson im Recyclerview nieder... funktioniert auch supi....
nun soll aber diese Zielperson direkt geladen werden, und desen Name "gehighlightet" im Recyclerview....
Und v** ich finde nicht heraus wie! :(

Also:
Wie "selecte" ich über den Code das Item, so das es das richtige Fragment lädt und das Item dem entsprechend den background bekommt ?

Ich suche schon so lange mit meinem bregrentzem english, es tut schon fast weh!

Kommentieren
Beste Antwort
Rafael K.
  • Forum-Beiträge: 2.359

16.02.2022, 08:11:08 via Website

Ich vermute mal das Problem ist WIE du bisher das highlighting machst.
Ein RecyclerView Element ist hochgradig volatil.
Du musst im Adapter, oder in den Daten alles vorhalten, was du brauchst, um ein Element im RecyclerView korrekt zu rendern.

Anhand deiner Beschreibung vermute ich du machst bei Klick die Änderung des Background auf dem aktuellen Element.
Da das nicht nicht im onBindViewholder direkt passiert, wird dieser Zustand auch nicht wiederhergestellt, wenn alle Elemente neu gerendert werden.
Genau das passiert aber höchstwahrscheinlich beim Verlassen und wieder betreten des Screens.

Hilfreich?
Volkan AydinPascal P.
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

12.02.2022, 10:47:06 via Website

Hallo Volkan,
ich kann deiner Beschreibung nicht ganz folgen.
Vielleicht erklärst du das mal Schrittweise evtl. mit Screenshots

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Beste Antwort
Rafael K.
  • Forum-Beiträge: 2.359

16.02.2022, 08:11:08 via Website

Ich vermute mal das Problem ist WIE du bisher das highlighting machst.
Ein RecyclerView Element ist hochgradig volatil.
Du musst im Adapter, oder in den Daten alles vorhalten, was du brauchst, um ein Element im RecyclerView korrekt zu rendern.

Anhand deiner Beschreibung vermute ich du machst bei Klick die Änderung des Background auf dem aktuellen Element.
Da das nicht nicht im onBindViewholder direkt passiert, wird dieser Zustand auch nicht wiederhergestellt, wenn alle Elemente neu gerendert werden.
Genau das passiert aber höchstwahrscheinlich beim Verlassen und wieder betreten des Screens.

Hilfreich?
Volkan AydinPascal P.
Kommentieren
Volkan Aydin
  • Forum-Beiträge: 187

08.03.2022, 18:01:36 via Website

vielen dank, und sorry für die verspätete antwort.... du hast es so ziemlich genau erfasst Rafael.

Ich dachte eimal zu viel um die Ecke.. bis ich dann kapierte, ich kann das onDrag einfach im onBindViewHolder implementiere und dort dann einfach, die eigentliche onCklick funtion einfach auslöse.....
Ich habe da viel zu kompiziert gedacht! Aber trotzdem danke!

Hilfreich?
Kommentieren