我点击一个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();
}
}
效果图:
直接字符串里去除相关的id字符串
ids.replace(id,"");
在ids字符串里移除id字符串。