Ich verwende den DownloadManager zum Herunterladen von Dateien und möchte für jeden Download eine Fortschrittsansicht in einem RecyclerView.ViewHolder aktualisieren.Ein Element in RecyclerViewAdapter mit Otto aktualisieren
Meine aktuelle Idee ist, Otto zu verwenden, um ein downloadProgressed-Ereignis zu veröffentlichen. Ich möchte, dass sich meine viewHolders im Event-Bus registrieren, aber ich bin mir nicht sicher, wo ich sie registrieren und abmelden soll.
Ist das eine gute Idee? Oder sollte ich nach einer besseren Lösung suchen?
IIRC, Viewholders werden jedes Mal wiederverwendet, wenn ein Scroll-Ereignis eintritt. Ich denke also nicht, dass es eine gute Idee ist, etwas darin zu ändern. Für mich würde ich Otto in dem Fragment/der Aktivität abonnieren, die den Adapter enthält und 'notifyItemChanged (position)' von dort aufruft. – AimanB
Klingt so, als müsste ich bei jedem Download eine for-Schleife verwenden, um die Position zu finden. Ist das genauso effizient wie nur auf ein Ereignis zu reagieren und sicherzustellen, dass das Objekt übereinstimmt, bevor die Fortschrittsanzeige geändert wird? Ich muss mich nur für Ereignisse registrieren, wenn der Viewholder erstellt wurde, nicht wenn Daten gebunden wurden. Ich kann einfach keinen guten Ort finden, um mich abzumelden. – Hackmodford