android - Android/sqlite - 带有用户输入的 ContentResolver 查询
问题描述
目前,我正在使用这种方法来查询用户手机中的所有照片:
public void setCursor(){
String selection;
String[] selectionArgs;
selection = MediaStore.Images.Media.DATA + " LIKE ?";
selectionArgs = new String[]{"%"+getSelectionArg()+"%"};
cursor = context.getContentResolver().query(
EXTERNAL_CONTENT_URI,
MainActivity.projection,
selection,
selectionArgs,
MediaStore.Images.Media.DATE_ADDED
);
cursor.moveToPosition(getI());
}
我想让用户按文件名过滤查询,所以我添加了 selection & selectionArgs 部分。(getSelectionArgs() 如果没有用户输入,则返回“”。如果有,则返回输入。)
当用户输入“s”或“d”或“%”时,此方法会出现问题。我怎样才能清理这个输入,这样就不会发生?我没有使用 SQL 的经验,我真的需要帮助,所以请善待。
解决方案
好吧,没关系。我的代码是正确的,显示所有图片的 s 和 d 并不是我想象的错误。它正在捕获(s)存储/模拟(d)/ 0 ...
推荐阅读
- python - Python CSV:隔离文件中行的索引号(二维数组结构)并将其放入变量中
- paypal - 贝宝沙盒与实时 ID
- javascript - 如何从jsp中的循环中获取选定的td数据到JS文件?
- excel - Excel - 将自己的宏添加到选定单元格中的“右键单击”
- c# - 在 InputFile 组件 Blazor WASM 中管理文件
- c++ - 为什么这个析构函数会影响我的代码和类对象但没有它一切都可以正常工作?
- android - 可以为 Play 管理中心上可用的应用程序以不同的“buildTypes”模式安装 APK 吗?
- python - 具有多元正态分布的 Numpy 网格
- angular - 一个延迟加载模块用于 n 多条路线
- fullcalendar - 跨月活动