How to Get Item ID in RecyclerView Android

How to Get Item ID in RecyclerView Android
How to Get Item ID in RecyclerView Android

RecyclerView is a popular widget used in Android development to display large sets of data efficiently.

When working with RecyclerView, it’s often necessary to get the ID of the item that was clicked or interacted with.

Here’s a detailed guide on how to get an item ID in RecyclerView Android.

Why Get Item ID in RecyclerView?

There are a few key reasons you may need to get the ID of an item in RecyclerView:

  • To detect which item was clicked and take action on that specific item
  • To retrieve data or perform lookups based on the ID to update the UI
  • To pass the ID to other parts of the app for further processing when an item is selected
  • To differentiate between items and determine each item’s identity

Approaches to Get Item ID in RecyclerView

There are a couple of common approaches to getting the ID of the clicked item in RecyclerView:

  • Using the click listener interface in the adapter
  • Using the click listener interface in the view holder

Using the Click Listener Interface in the Adapter

One way is to define a click listener interface in the RecyclerView adapter class and set an on-click listener on the ViewHolder.

Here are the steps:

  • Define an interface like OnItemClickListener in the adapter with a callback method
  • Pass an instance of OnItemClickListener when constructing the adapter
  • Implement onClick() in ViewHolder to call the interface callback method
  • Override the callback method in Activity/Fragment to handle the click

This allows the activity/fragment to get notified of click events and receive the position or ID.

Using Click Listener Interface in ViewHolder

Another approach is to define the click listener interface in the ViewHolder class instead and invoke a callback passed from the adapter.

Here are the steps:

  • Define the OnItemClickListener interface in ViewHolder
  • Pass click listener object from the adapter to ViewHolder
  • Set click listener on itemView in ViewHolder
  • Invoke callback interface when the item is clicked
  • Implement a callback in Activity/Fragment to handle click

This also allows the activity to get click events and IDs like the previous approach.

Example Code

Here is some sample code to demonstrate implementing a click listener in the adapter to get the ID:

// OnItemClickListener interface
public interface OnItemClickListener {

  void onItemClick(int position);


// In RecyclerView adapter

private OnItemClickListener listener;

public void setOnItemClickListener(OnItemClickListener listener) {
  this.listener = listener; 

// In ViewHolder

public void onClick(View view) {
  if (listener != null) {
    int position = getAdapterPosition();
    if (position != RecyclerView.NO_POSITION) {

// In Activity

adapter.setOnItemClickListener(new OnItemClickListener() {

  public void onItemClick(int position) {
    // Handle click, use position or map to ID

This provides a clean way to get callbacks in the activity and access the item ID on clicks.


  • Loosely couples view holders from activity/fragment code
  • Cleaner code separation and flow
  • Easy to pass data like ID or position
  • Flexible for item click handling


  • Slightly more code is needed for interfaces
  • Need to ensure callbacks and listeners are set properly


How do I get the ID of a clicked item in Kotlin?

You can use the same approach as Java.
Define interface in adapter or ViewHolder, pass click listener, implement onClick to get the position, and override callback in activity/fragment to handle click and get ID.

What if I need the data object instead of just ID?

You can pass the entire data object (e.g. Model class) in the callback rather than just ID or position.
This allows you to access any data you need when an item is clicked.

Should I use ViewHolder or Adapter for click listener?

Either approach works fine.
Using the adapter keeps ViewHolder focused just on binding data.
Using ViewHolder keeps all click handling there.
Choose what makes the most sense for your app’s code structure.

This covers the main approaches for getting item ID on click events in RecyclerView.

By leveraging click listener interfaces and callbacks, you can easily implement item click handling and get access to the ID or other data you need on clicks.

Leave a comment

Your email address will not be published. Required fields are marked *