Получение указанного c события из календаря в android по _ID - PullRequest
1 голос
/ 04 марта 2020

В моем приложении android записан идентификатор события. Теперь я хочу получить указанное событие c из календаря. Возможно ли это?

Я нашел разные ответы о том, как получить события из календаря, но ни один не работал для моих требований. Здесь задокументировано, как получить события из указанного c календаря. Ограничения устанавливаются с помощью CalendarContract.Calendars Я считаю, что мне нужно использовать CalendarContract.Events._ID Вот что я пробовал

private fun getCalendarEvents(ids: List<Long>): List<Pair<String, Long>> {
        val EVENT_PROJECTION: Array<String> = arrayOf(
            CalendarContract.Events._ID,
            CalendarContract.Events.TITLE
        )

        val PROJECTION_ID_INDEX: Int = 0
        val PROJECTION_TITLE_INDEX: Int = 1


        val uri: Uri = CONTENT_URI
        val keys: String = ids.fold("") { acc, it -> "$acc, $it" }

        val selection: String = "${CalendarContract.Calendars._ID} IN ?"
        val selectionArgs: Array<String> = arrayOf("($keys)")
        val cur: Cursor = contentResolver.query(uri, EVENT_PROJECTION, selection, selectionArgs, null)!!

        val result: MutableList<Pair<String, Long>> =
            emptyList<Pair<String, Long>>().toMutableList()

        while (cur.moveToNext()) {
            val ID: Long = cur.getLong(PROJECTION_ID_INDEX)
            val TITLE: String = cur.getString(PROJECTION_TITLE_INDEX)
            result += Pair(TITLE, ID)
        }
        return result
    }

Он пытается загрузить все события, которые имеют _ID в списке идентификаторов и возвращает (Title, Id ) пар.

Есть ли какой-нибудь легкий способ сделать это? Существует простой способ вставки, редактирования и удаления событий здесь , поэтому я думаю, что должно быть что-то подобное и для извлечения событий.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...