小编use*_*860的帖子

RecyclerView和java.lang.IndexOutOfBoundsException无效的视图持有者适配器positionViewHolder

我有一个RecyclerView可以捆绑杂货的物品。添加项目效果很好。但是,当我尝试删除项目时,应用程序崩溃了,并且出现了IndexOutOfBoundsException错误。

我面临的问题是我的onBindViewHolder()。我试图找到适配器的位置,但并没有解决问题。我也尝试过使用notifyDataSetChanged(),只是删除了我的整个列表。

我的问题是我做错了什么以及如何解决此问题?

这是Adapter类:

private class GroceryAdapter extends RecyclerView.Adapter<GroceryHolder>{
    private List<Grocery> groceries;
    private GroceryHolder holder;

    public GroceryAdapter(){
        setGroceries(GroceryList.get(GroceryActivity.this).getGroceries());
    }

    public void setGroceries(List<Grocery> groceries){
        this.groceries = groceries;
    }

    @Override
    public GroceryHolder onCreateViewHolder(ViewGroup parent, int viewType){
        LayoutInflater layoutInflater= LayoutInflater.from(GroceryActivity.this);
        View view=layoutInflater.inflate(R.layout.grocery_list_row, parent, false);
        holder =new GroceryHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(final GroceryHolder holder, final int position){
        final Grocery grocery = groceries.get(position);
        holder.bindGrocery(grocery);
        //private Grocery grocery;
        holder.deleteImageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View …
Run Code Online (Sandbox Code Playgroud)

java android indexoutofboundsexception android-viewholder android-recyclerview

6
推荐指数
1
解决办法
8029
查看次数