如果您需要在绑定视图持有者只有这样你才能使用
holder.getAdapterPosition();
如果您需要在活动和片段中单击此位置,那么您必须使用从持有者到活动和片段的回调,并且必须传递相同的 getAdapterPosition();
Edit:添加了片段/活动中监听位置点击的示例代码
步骤1:制作接口或回调
public interface RecyclerViewClickListener {
void onClick(View view, int position);
}
步骤 2:在片段或活动中初始化适配器类时,将上面创建的引用作为参数传递
public YourAdapter(List<SomeModel> modelList, RecyclerViewClickListener listener){
this.clickListener = listener;
}
步骤 3:在 ViewHolder 或类似的视图初始化类中执行类似的操作
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private Button mapBtn;
ViewHolder(View v, RecyclerViewClickListener listener) {
super(v);
mapBtn = findViewById(R.id.mapBtn);
mListener = listener;
mapBtn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
mListener.onClick(view, getAdapterPosition());
}
}
您将获得在初始化适配器时传递回调引用的片段或活动中的位置。