Android onBind方法中未更新项目位置

Android onBind方法中未更新项目位置,android,android-recyclerview,android-adapter,Android,Android Recyclerview,Android Adapter,我正在实现一个接口来检测何时在回收器视图中单击视图。单击按钮时,我正在删除项目。单击一次按钮即可正常工作。但当我第二次单击时,它会删除它旁边的视图 @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { holder.delete.setOnClickListener(new View.OnClickListener() { @Override

我正在实现一个接口来检测何时在回收器视图中单击视图。单击按钮时,我正在删除项目。单击一次按钮即可正常工作。但当我第二次单击时,它会删除它旁边的视图

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

    holder.delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            optionsClickEvent.onDeleteClicked(position, imagePath);
            showToast(String.valueOf(position));
        }
    });

}
上面的代码正在onBind中执行。接下来我要删除:

@Override
public void onDeleteClicked(int position, ArrayList<String> filePath) {
    filePath.remove(position);
    imageAdapter.notifyItemRemoved(position);
}
@覆盖
已单击的公共void(int位置,ArrayList文件路径){
删除(位置);
imageAdapter.notifyItemRemoved(位置);
}

这是完美的一次。但项目不会更新。当我第二次单击“删除”按钮时,该项将从位置+1处删除。

User holder.getAdapterPosition()而不是onClick中的布局位置

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

holder.delete.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        optionsClickEvent.onDeleteClicked(holder.getAdapterPosition(), imagePath);
        showToast(String.valueOf(position));
    }
});

}

位置是布局位置还是适配器位置?尝试使用适配器位置,我不知道。请参见上面的代码。我改了,谢谢。为什么holder.getAdapterPosition()在方法showToast()中使用时给出-1?