RecyclerView – 我应该在哪里处理点击事件?

在引入RecyclerView (及其强制的ViewHolder模式)之前,我通常使用setOnItemClickListener()将任何单击事件委托给相应的Activity / Fragment 。 (因为Android开发时我主要将Activity / Fragment看作一个“控制器”对象,因此应该对视图进行任何修改。)

现在,由于RecyclerView并没有真正地以相同的方式处理它的子对象,并且setOnItemClickListener() (或类似的)方法不再被实现 – 我应该在哪里处理可能发生的点击事件呢? 我不知道,但在一个Adapter处理他们似乎尴尬的我。

我们该怎么做呢?

提前致谢!

Solutions Collecting From Web of "RecyclerView – 我应该在哪里处理点击事件?"

像往常一样为回收视图创build您自己的viewHolder,并在onBindView方法中,将点击侦听器设置为您希望执行点击的视图。

 @Override public void onBindViewHolder(final ViewHolder viewHolder, int position) { viewHolder.mRelContent.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // perform ur click here } }); } 

请参阅Jacob的RecyclerView.OnItemTouchListener 实现 。 我认为这是最好的解决scheme。

希望它会帮助你。 问候。