我有一个arraylist,我正在使用ImageButton从列表中删除项目。如果我从相同的位置删除3个项目,则应用程序会崩溃并显示IndexOutOfBoundsException。我不知道如何在删除项目之前更改项目的数组位置。java.lang.IndexOutOfBoundsException:索引无效
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
ExRow expense = expenseList.get(position);
holder.title.setText(expense.getTitle());
holder.amount.setText(expense.getAmount());
mRemoveButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// Remove the item on remove/button click
expenseList.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, expenseList.size());
}
});
}
你为什么要叫两个'notifyItemRemoved()'和'notifyItemRangeChanged()'?只有一个应该足够了 –
你可以添加异常的堆栈跟踪并使你的代码示例更完整吗?例如,它完全不清楚“费用列表”是什么对象。 – dpr
尝试用'ExRow expense = expenseList.get(holder.getAdapterPosition());' –