Vor der Einführung von RecyclerView
(und seinem obligatorischen ViewHolder
-Muster) delegiere ich normalerweise alle Klickereignisse an die entsprechende Activity
/ Fragment
mit setOnItemClickListener()
. (Weil ich hauptsächlich Activity
/ Fragment
als ein "Controller" -Objekt sehe, wenn ich für Android entwickle, sollte jede Änderung an der Ansicht darin gemacht werden.)
Nun behandelt RecyclerView
seine Kinder nicht mehr auf die gleiche Weise und die setOnItemClickListener()
(oder ähnliche) Methoden sind nicht mehr dafür implementiert - wo sollte ich Klickereignisse behandeln, die stattfinden können? Ich weiß es nicht ... aber mit ihnen in einem Adapter
umzugehen scheint mir peinlich.
Wie sollen wir das machen?
Vielen Dank im Voraus!
Erstellen Sie wie gewohnt einen eigenen viewHolder für die Recycler-Ansicht, und setzen Sie den click listener in der onBindView-Methode auf die Ansicht, in der der Klick ausgeführt werden soll.
%Vor% Siehe Jacobs Implementierung von RecyclerView.OnItemTouchListener
. Ich denke, es ist die beste Lösung.
Ich hoffe, es wird dir helfen. Grüße.
Tags und Links android android-adapter android-adapterview