MediaStore模糊查詢背桐、分頁、排序
安卓10以上就有了分區(qū)存儲的概念蝉揍,相關(guān)的查詢就有了一些改變链峭,下面我們介紹一下
MediaStore
經(jīng)常使用的查詢。
常用的查詢項:
-
QUERY_ARG_LIMIT
:查詢條數(shù) -
QUERY_ARG_OFFSET
:數(shù)據(jù)偏移量 -
QUERY_ARG_SORT_DIRECTION
:排序方向又沾,也就是正序還是倒序 -
QUERY_ARG_SORT_COLUMNS
:排序字段 -
QUERY_ARG_SQL_SELECTION
:where語句
實際例子弊仪,page和limit需要全局定義
// 需要查詢的資源
Uri uri = MediaStore.Files.getContentUri("external");
// 需要查詢的字段熙卡,根據(jù)display_name模糊查詢,size大于0的励饵,date_modified倒序
String[] columns = {
MediaStore.Files.FileColumns.DISPLAY_NAME,
MediaStore.Files.FileColumns.SIZE,
MediaStore.Files.FileColumns.DATE_MODIFIED
};
// where條件
String where = "(_display_name like '%.png' or _display_name like '%.jpg') and _size > 0";
// 組裝查詢
Bundle select = new Bundle();
// 偏移量再膳,也就是從第幾條開始查詢 page是頁碼,limit是每頁數(shù)量曲横,根據(jù)邏輯自行修改
int start = (page - 1) * limit;
select.putInt(ContentResolver.QUERY_ARG_LIMIT, limit);
select.putInt(ContentResolver.QUERY_ARG_OFFSET, start);
// 排序方向,倒序
select.putInt(ContentResolver.QUERY_ARG_SORT_DIRECTION, ContentResolver.QUERY_SORT_DIRECTION_DESCENDING);
select.putStringArray(ContentResolver.QUERY_ARG_SORT_COLUMNS, new String[]{MediaStore.Files.FileColumns.DATE_MODIFIED});
// where條件
select.putString(ContentResolver.QUERY_ARG_SQL_SELECTION, where.toString());
// 這個query方法參數(shù)是4個
Cursor cursor = getActivity().getContentResolver().query(uri, columns, select, null);
// 查詢到此結(jié)束禾嫉,然后就可以根據(jù)自己的邏輯進行操作了