通过_ID从android中的日历获取特定事件

通过_ID从android中的日历获取特定事件,android,kotlin,android-calendar,Android,Kotlin,Android Calendar,我的android应用程序中有一个事件id。 现在我想从日历中获取此特定事件。可能吗 我已经找到了关于如何从日历中获取事件的各种答案,但没有一个符合我的要求。 记录了如何从特定日历获取事件。 使用CalendarContract.Calendars设置约束。我认为我需要使用CalendarContract.Events.\u ID 这是我试过的 private fun getCalendarEvents(ids: List<Long>): List<Pair<String

我的android应用程序中有一个事件id。 现在我想从日历中获取此特定事件。可能吗

我已经找到了关于如何从日历中获取事件的各种答案,但没有一个符合我的要求。 记录了如何从特定日历获取事件。 使用
CalendarContract.Calendars设置约束。我认为我需要使用
CalendarContract.Events.\u 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
    }
private fun getCalendarEvents(id:List):List{
val事件_投影:Array=arrayOf(
CalendarContract.Events.\u ID,
CalendarContract.Events.TITLE
)
val投影ID索引:Int=0
val投影标题索引:Int=1
val uri:uri=CONTENT\u uri
val keys:String=ids.fold(“”{acc,it->“$acc,$it”}
val selection:String=“${CalendarContract.Calendars.\u ID}IN?”
val selectionArgs:Array=arrayOf(“($keys)”)
val cur:Cursor=contentResolver.query(uri、事件投影、选择、选择、空)!!
val结果:可变列表=
emptyList().toMutableList()
while(cur.moveToNext()){
val ID:Long=cur.getLong(投影ID索引)
val TITLE:String=cur.getString(投影标题索引)
结果+=对(标题、ID)
}
返回结果
}
它尝试加载ids列表中具有_ID的所有事件,并返回(Title,ID)对

有什么简单的方法可以做到这一点吗?有一种简单的方法可以插入、编辑和删除事件,所以我想一定也有类似的方法来获取事件

谢谢你的帮助