5

Android studio gives me a waning getAdapterPosition is deprecated :

public class UserStatusAdapter extends RecyclerView.Adapter<UserStatusAdapter.UserStatusHolder> {  

 public class UserStatusHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        @BindView(R.id.user_status_image)
        CircleImageView user_status_image;
        @BindView(R.id.add_user_status)
        AppCompatButton add_user_status;
        @BindView(R.id.user_status_name)
        AppCompatTextView user_status_name;
        public UserStatusHolder(View view){
            super(view);
            ButterKnife.bind(this, view);
            view.setOnClickListener(this);
        }
        @Override
        public void onClick(View v) {
            if (mUserStoryAdapterListener != null)
                    mUserStoryAdapterListener.getUserStories(dataList, getAdapterPosition());
        }
    }
........ }

what should I use instead to get the adapter position?

Mohamed AbdelraZek
  • 2,503
  • 4
  • 25
  • 36

2 Answers2

7

You can use getAbsoluteAdapterPosition()

Returns the Adapter position of the item represented by this ViewHolder with respect to the RecyclerView.Adapter.

mUserStoryAdapterListener.getUserStories(dataList, getAbsoluteAdapterPosition());
IntelliJ Amiya
  • 74,896
  • 15
  • 165
  • 198
1

This method is confusing when adapters nest other adapters. If you are calling this in the context of an Adapter, you probably want to call getBindingAdapterPosition() or if you want the position as RecyclerView sees it, you should call getAbsoluteAdapterPosition().

References : https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#getAdapterPosition()

Jyotish Biswas
  • 674
  • 5
  • 11