请教一个RecyclerView批量删除反选的问题

我点击一个item就会获取到一个id,然后批量选择后拼接这些id成一个字符串发到后台批量删除数据.我点击后该怎样反选呢?比如是这样:这个字符串我是一个个拼接的,比如我现在有一个String ids="1111,2222,3333,4444,5555",我现在想实现的功能是:当我再拼接1111的时候就把这个ids里面的1111删掉,变为String ids="2222,3333,4444,5555",请问这个该怎么做?类似于反选的功能
item点击的代码:

    public void onItemClickListener(int pos, List<CollectedBean> myLiveList) {
        //获取选中的视频id,用于点击批量删除
        CollectedBean bean = myLiveList.get(pos);
        List<CollectedBean.DataBean> data = bean.getData();
        CollectedBean.DataBean dataBean = data.get(pos);
        int id = dataBean.getId();
        String ids = String.valueOf(id);//这里生成1111

        mMulDeleteId += ids + ",";
        //获取到拼接的批量删除id    //TODO:需要处理反选(如果选中的id在字符串中存在则删除该id)
        mulDeleteId = mMulDeleteId.substring(4, mMulDeleteId.length() - 1);

        Log.d(TAG, "1530=   "+mulDeleteId);

//        if(mulDeleteId!=null){
//            if(mulDeleteId.contains(ids)){
//                mulDeleteId = mulDeleteId.replaceAll(ids, "");
////                Log.d(TAG, "有相同,删除"+s);
//            }
//        }
//        Log.d(TAG, "1425=   "+length);
//        if (mulDeleteId.indexOf(ids) != -1) {//返回的值不是-1说明拼接的字符串中包含字符串后面拼接的字符串,反选功能
//            Log.d(TAG, "有相同id,删除");
//        }

        mDeleteId = pos;
        if (editorStatus) {
            CollectedBean myLive = myLiveList.get(pos);
            boolean isSelect = myLive.isSelect();
            if (!isSelect) {
                index++;
                myLive.setSelect(true);
                if (index == myLiveList.size()) {
                    isSelectAll = true;
                    mSelectAll.setText("取消全选");
                }
            } else {
                myLive.setSelect(false);
                index--;
                isSelectAll = false;
                mSelectAll.setText("全选");
            }
            setBtnBackground(index);
            mTvSelectNum.setText(String.valueOf(index));
            mAdapter.notifyDataSetChanged();
        }
    }

效果图:
图片描述

阅读 3.2k
2 个回答

直接字符串里去除相关的id字符串
ids.replace(id,"");
在ids字符串里移除id字符串。

你可以用一个集合存放你选择的条目id,当反选的时候从集合移除反选对象,最后提交的时候在把集合转成字符就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题