项目位置未在 onBind 方法中更新
Item position not updating in onBind method
我正在实现接口来检测何时在回收站视图中单击视图。单击按钮时我正在删除该项目。单击一次按钮时它工作正常。但是,当我第二次单击时,它会删除旁边的视图。
@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);
}
这一次就完美了。但是项目没有更新。当我第二次单击删除按钮时,该项目在位置 +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));
}
});
}
我正在实现接口来检测何时在回收站视图中单击视图。单击按钮时我正在删除该项目。单击一次按钮时它工作正常。但是,当我第二次单击时,它会删除旁边的视图。
@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);
}
这一次就完美了。但是项目没有更新。当我第二次单击删除按钮时,该项目在位置 +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));
}
});
}