For RecyclerView
item OnItemTouchListener
is best way
But you can do it click on Item by following in adpter
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
...
holder.itemView.setOnClickListener(..)
...
}
For swipe on RecyclerView
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder1) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
//Remove swiped item from list and notify the RecyclerView
if (swipeDir == ItemTouchHelper.LEFT) {
Snackbar.make(recyclerViewCards, getString(R.string.item_deleted),
Snackbar
.LENGTH_LONG)
.show();
showVisitingCardsPresenterImpl.detletCardFromRealm(Realm.getInstance
(ShowVisitingCardsActivity.this), mAdapter.getID(viewHolder
.getAdapterPosition()), viewHolder
.getAdapterPosition()
);
} else {
showVisitingCardsPresenterImpl.startVisitingCardUpdateActivity(mAdapter.getID(viewHolder
.getAdapterPosition()));
}
}
};
see this link for complete left-to-right and right-to-left swipe detection