Android: отличный и GroupBy в ContentResolver

Каков был бы разумный способ добавить DISTINCT и/или GROUPBY кому: ContentResolver- основанные запросы. Прямо сейчас я должен создать пользовательский URI для каждого особого случая. Существует ли лучший путь? (Я все еще программа для 1,5 как наименьший общий знаменатель)

31
задан sɐunıɔןɐqɐp 11 November 2019 в 17:41
поделиться

1 ответ

Поскольку никто не ответил, я просто расскажу, как я это решил. Обычно я бы создавал собственный URI для каждого случая и передавал критерии в параметре selection . Затем внутри ContentProvider # query я бы идентифицировал случай и построил необработанный запрос на основе имени таблицы и параметра выбора.

Вот быстрый пример:

switch (URI_MATCHER.match(uri)) {
    case TYPES:
        table = TYPES_TABLE;
        break;
    case TYPES_DISTINCT:
        return db.rawQuery("SELECT DISTINCT type FROM types", null);
    default:
        throw new IllegalArgumentException("Unknown URI " + uri);
    }
    return db.query(table, null, selection, selectionArgs, null, null, null);
15
ответ дан 27 November 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: