Android(安卓)contentResolver 进行query 条件为where in时出错
16lz
2021-01-26
项目中需要使用contentResolver通过in操作符对一定范围内的数据进行查询。
使用普通的方案,即直接使用一个“?”构造一个普通的SQL,
如
String selection = "item_name in ?";String[] selectionArgs = new String[]{"('value1','value2,'value3')"} ;
会报语法错误。
解决方案大致如下,自己修改即可,经过验证可用。
代码块
Set positionsSet = membersListCursorAdapter.getCurrentCheckedPosition();List ids = new ArrayList<>();List parameters = new ArrayList<>();for (Integer position : positionsSet) { ids.add(String.valueOf(membersListCursorAdapter.getItemId(position))); parameters.add("?");}getActivity().getContentResolver().delete( SharedUserTable.CONTENT_URI, SharedUserTable._ID + " in (" + TextUtils.join(",", parameters) + ")", ids.toArray(new String[ids.size()]));
PS:使用db进行query的时候,如果有where in条件,使用rawquery即可。
更多相关文章
- Android核心程序之SystemUI - (一)开篇
- Android(安卓)MVP模式 谷歌官方代码解读
- 第一个android 程序的学习心得
- Android(安卓)代码中设置EditText只输入数字、字母
- 试用Android(安卓)Annotations
- xe5 android 调用照相机获取拍的照片
- 类似Lazy Android的插件,根据layout的xml文件自动生成findViewByI
- Android仿微信UI布局视图(圆角布局的实现)
- 【分享】Android二次打包植入广告