【问题标题】:Android/sqlite - ContentResolver query with user inputAndroid/sqlite - 带有用户输入的 ContentResolver 查询
【发布时间】:2021-07-03 16:04:24
【问题描述】:

目前,我正在使用此方法查询用户手机中的所有照片:

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 的经验,我真的需要帮助,所以请善待。

【问题讨论】:

    标签: android sql android-contentresolver


    【解决方案1】:

    Welp,没关系。我的代码是正确的,显示所有图片的 s 和 d 并不是我想象的错误。它正在捕获 (s)torage/emulate(d)/0...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 2017-08-14
      • 2018-09-22
      • 2017-05-29
      相关资源
      最近更新 更多