在adapter中给recyclerview一个接口,然后再onBindViewHolder中写入方法
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
viewHolder.tv.setText(mDatas.get(position));
viewHolder.itemtext.setTextSize(20);
viewHolder.itemtext.setTextColor(Color.GRAY);
if (mOnItemClickLitener != null) {
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = viewHolder.getLayoutPosition();
mOnItemClickLitener.onItemClick(viewHolder.itemView, pos);
}
});
}
if (onItemTouchListener != null) {
viewHolder.itemView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
System.out.println("up");
break;
case MotionEvent.ACTION_UP:
System.out.println("down");
break;
default:
break;
}
return true;
}
});
}
这样会出现一个问题就是点击一次item的时候有很大几率执行两次方法,即点击一次打印出up down up down 求大神分析一下是什么原因导致的呢?