質問は明確ではありません。しかし、私の理解に基づいて、全体のビューと各アイテムのクリックイベントを同時に取得する必要があります。
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
// this will be called multiple times for single click - for MotionEvent.ACTION_DOWN, MotionEvent.ACTION_UP, and MotionEvent.ACTION_MOVE
// So restricting the call only for ACTION_DOWN,
if(e.getAction() == MotionEvent.ACTION_DOWN) {
Toast.makeText(mContext, "Clicked view", Toast.LENGTH_LONG).show();
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {}
});
ビュー全体のイベントをクリックして取得し、各項目のクリックイベントを取得するには、あなたが正しいですが、少し問題FOTがあるonBindViewHolder機能に
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
holder.item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(mContext, "Clicked Item", Toast.LENGTH_LONG).show();
}
});
}
をクリックリスナーを追加なぜなら、私はACTION_DOWNまたはmoveまたはupのときに何かする必要があるので、onClickだけでなく、全体のビューとコレスポンデントアイテムの両方に対してTouchEventを取得したいからです – AsyncCode