【问题标题】:getAdapterPosition Deprecated What should I use instead? [duplicate]getAdapterPosition 已弃用 我应该改用什么? [复制]
【发布时间】:2020-08-05 20:15:28
【问题描述】:

Android 工作室给了我一个减弱的 getAdapterPosition 已弃用:

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());
        }
    }
........ }

我应该使用什么来获取适配器位置?

【问题讨论】:

    标签: android android-recyclerview


    【解决方案1】:

    您可以使用getAbsoluteAdapterPosition()

    返回此 ViewHolder 表示的项目相对于 RecyclerView.Adapter 的适配器位置。

    mUserStoryAdapterListener.getUserStories(dataList, getAbsoluteAdapterPosition());
    

    【讨论】:

    【解决方案2】:

    当适配器嵌套其他适配器时,此方法会令人困惑。如果你在适配器的上下文中调用它,你可能想调用getBindingAdapterPosition(),或者如果你想要RecyclerView看到的位置,你应该调用getAbsoluteAdapterPosition()

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-28
      • 2010-09-17
      • 1970-01-01
      • 2014-01-09
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      相关资源
      最近更新 更多