鍍金池/ 問答/區(qū)塊鏈  Android/ 請(qǐng)教一個(gè)RecyclerView批量刪除反選的問題

請(qǐng)教一個(gè)RecyclerView批量刪除反選的問題

我點(diǎn)擊一個(gè)item就會(huì)獲取到一個(gè)id,然后批量選擇后拼接這些id成一個(gè)字符串發(fā)到后臺(tái)批量刪除數(shù)據(jù).我點(diǎn)擊后該怎樣反選呢?比如是這樣:這個(gè)字符串我是一個(gè)個(gè)拼接的,比如我現(xiàn)在有一個(gè)String ids="1111,2222,3333,4444,5555",我現(xiàn)在想實(shí)現(xiàn)的功能是:當(dāng)我再拼接1111的時(shí)候就把這個(gè)ids里面的1111刪掉,變?yōu)镾tring ids="2222,3333,4444,5555",請(qǐng)問這個(gè)該怎么做?類似于反選的功能
item點(diǎn)擊的代碼:

    public void onItemClickListener(int pos, List<CollectedBean> myLiveList) {
        //獲取選中的視頻id,用于點(diǎn)擊批量刪除
        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();
        }
    }

效果圖:
圖片描述

回答
編輯回答
我不懂

你可以用一個(gè)集合存放你選擇的條目id,當(dāng)反選的時(shí)候從集合移除反選對(duì)象,最后提交的時(shí)候在把集合轉(zhuǎn)成字符就可以了。

2018年5月6日 14:48
編輯回答
笑忘初

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

2017年4月12日 03:24