问题描述
我正在实现接口来检测何时在回收站视图中单击视图。单击按钮后,我将删除该项目。单击一次按钮后,它可以正常工作。但是,当我第二次单击时,它会删除它旁边的视图。
@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));
}
});
}
@Override
public void onDeleteClicked(int position,ArrayList<String> filePath) {
filePath.remove(position);
imageAdapter.notifyItemRemoved(position);
}
这一次完美。但是项目不会更新。当我第二次单击删除按钮时,该项将在位置+1处删除。
解决方法
用户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));
}
});
}