Warum funktioniert OnClickListener in einem ViewHolder nicht?
Ich versuche, eine Möglichkeit zu implementieren, um die Elementauswahl auf einem @ zu handhabeRecyclerView
. Ich persönlich mag es nicht, wie in einigen Antworten auf SO vorgeschlagen, Gesten zu durchlaufen, und ich dachte, dass die Implementierung einesOnClickListener
, wie vorgeschlagenHie undHie, war waaay sauberer.
Tatsache ist, dass ... dieses Muster nicht wirklich funktioniert! Ich kann wirklich nicht verstehen, warum meinOnClickListener.onClick
istnoch ni namens. Es ist ein bisschen wie eine andere Methode den Klick abfängt, bevoronClick
kann sich darum kümmern.
Dies ist mein Code:
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView tvName;
ImageView star;
public ViewHolder(View itemView) {
super(itemView);
tvName = (TextView) itemView.findViewById(R.id.CHAT_ITEM_name);
star = (ImageView) itemView.findViewById(R.id.CHAT_ITEM_star);
Fonts.setTypeface(tvName, regular);
}
@Override
public void onClick(View view) {
int position = getLayoutPosition();
select(position);
}
}
Leider ist es für mich sehr wichtig, auf die Position des angeklickten Elements im gesamten Datensatz zugreifen zu können, um es zu entferneindexOfChild
ist auch nicht akzeptabel: Ich habe versucht, aber diese Methode gibt Ihnen die Position des Elements in der visibile Teil der Liste, so dasslist.remove(position)
unmöglich