android_recyclerView删除item时遇到的问题(add方法与Arrays.asList)

今天做任务的时候遇到个问题

想实现一个点击item 删除item(看到这里一想so easy) 结果报错

之后找了找问题的所在

原因就是我 初始化list的时候 用的是  Arrays.asList

private List<String> indicatorList = Arrays.asList("中国很行", "中国很行", "中国很行", "中国很行", "中国很行");

改成 list.add()这种形式就好了

这个问题会报异常java.lang.UnsupportedOperationException 这是什么异常没见过   根据语义这应该是不支持操作异常

怎么就不支持操作了呢(不让我操作也许就是这个方法用不了)

为什么会这样?

看了一下源码:

通过有道词典看了一下方法的使用说明(也就是注释 写程序要写注释呀 本人也不怎么写注释)

注意上面的这句话 此方法还提供了一种创建创建固定大小的方便方法(原因就在这)

固定大小(固定了大小 也就没有增加和删除操作了  add方法不好使了 remove也不好用了 这也就变成了数组)

所以最后我把这个改了改成add方法初始化数据了

companyList=new ArrayList<>();
companyList.add("中国很行");
companyList.add("中国很行");
companyList.add("中国很行");
companyList.add("中国很行");
companyList.add("中国很行");
companyList.add("中国很行");
companyList.add("中国很行");
companyList.add("中国很行");
companyAdapter=new CommonAdapter(getContext(),R.layout.item_fragment02_dialog_string,companyList) {
    @Override
    protected void convert(final ViewHolder holder, Object o, final int position) {
        holder.setText(R.id.tv_name, companyList.get(position));
        holder.getView(R.id.lin_del).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                companyList.remove(holder.getAdapterPosition());
                notifyItemRemoved(holder.getAdapterPosition());//这种方法有个删除的效果 哈哈很好
                if(companyList.size()==0){
                    text.setVisibility(View.VISIBLE);
                }
            }
        });
        holder.getView(R.id.tv_name).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getContext(), Fragment03Activity.class);
                startActivity(intent);
            }
        });
    }
};

猜你喜欢

转载自blog.csdn.net/iamchan/article/details/84062785