Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的等效日历选择器_Android_Kotlin_Calendar_Android Calendar - Fatal编程技术网

Android中的等效日历选择器

Android中的等效日历选择器,android,kotlin,calendar,android-calendar,Android,Kotlin,Calendar,Android Calendar,我正试图在Android中实现EKCalendar的克隆,但我在显示假期和生日列表时感到震惊。除此之外,我需要在用户选择上显示他希望显示的电子邮件 到目前为止,代码是 private fun loadCalendarEvents(emailString: String) { val projectionArray = arrayOf( CalendarContract.Calendars._ID, CalendarContr

我正试图在Android中实现EKCalendar的克隆,但我在显示假期和生日列表时感到震惊。除此之外,我需要在用户选择上显示他希望显示的电子邮件

到目前为止,代码是

private fun loadCalendarEvents(emailString: String) {
    val projectionArray =
        arrayOf(
            CalendarContract.Calendars._ID,
            CalendarContract.Events.TITLE,
            CalendarContract.Events.DESCRIPTION,
            CalendarContract.Events.DTSTART,
            CalendarContract.Events.DTEND,
            CalendarContract.Events.ALL_DAY,
            CalendarContract.Events.EVENT_LOCATION,
            CalendarContract.Attendees.ORGANIZER,
            CalendarContract.Events.CALENDAR_TIME_ZONE,
            CalendarContract.Events.ACCOUNT_TYPE
        )

    val startTime = Calendar.getInstance()

    startTime.set(Calendar.HOUR_OF_DAY, 0)
    startTime.set(Calendar.MINUTE, 0)
    startTime.set(Calendar.SECOND, 0)

    var fromTime = registrationPreferences.getFromTime()
    var toTime = registrationPreferences.getToTime()

    when {
        fromTime.equals("6 Months", true) -> {
            startTime.add(Calendar.MONTH, -6)
            startTime.set(Calendar.DAY_OF_MONTH, 1)
        }
        fromTime.equals("1 Year", true) -> {
            startTime.add(Calendar.YEAR, -1)
        }
        fromTime.equals("2 Years", true) -> {
            startTime.add(Calendar.YEAR, -2)
        }
        fromTime.equals("3 Years", true) -> {
            startTime.add(Calendar.YEAR, -3)
        }
    }

    val endTime = Calendar.getInstance()
    when {
        toTime.equals("6 Months", true) -> {
            endTime.add(Calendar.MONTH, 6)
        }
        toTime.equals("1 Year", true) -> {
            endTime.add(Calendar.YEAR, 1)
        }
        toTime.equals("2 Years", true) -> {
            endTime.add(Calendar.YEAR, 2)
        }
        toTime.equals("3 Years", true) -> {
            endTime.add(Calendar.YEAR, 3)
        }
    }


    val selection =
        "(( " + CalendarContract.Events.DTSTART + " >= " + startTime.timeInMillis + " ) AND ( " + CalendarContract.Events.DTEND + " <= " + endTime.timeInMillis + " ) AND ( deleted != 1 ) " + " AND (${CalendarContract.Calendars.OWNER_ACCOUNT} = ?)" + " AND (${CalendarContract.Calendars.ACCOUNT_TYPE} = ?))"


    val cursor = contentResolver.query(
        CalendarContract.Events.CONTENT_URI,
        projectionArray,
        selection,
        null,
        null
    )
    if (cursor != null && cursor.count > 0 && cursor.moveToFirst()) {
        do {
            // Need to fetch the events.
        } while (cursor.moveToNext())
    }
}
private fun loadCalendarEvents(emailString:String){
val投影阵列=
排列(
日历合同。日历。\u ID,
CalendarContract.Events.TITLE,
CalendarContract.Events.DESCRIPTION,
CalendarContract.Events.DTSTART,
CalendarContract.Events.DTEND,
日历合同。事件。全天,
CalendarContract.Events.EVENT\u位置,
CalendarContract.Attendes.ORGANIZER,
CalendarContract.Events.CALENDAR\u时区,
CalendarContract.Events.ACCOUNT\u类型
)
val startTime=Calendar.getInstance()
startTime.set(Calendar.HOUR\u OF_DAY,0)
startTime.set(Calendar.MINUTE,0)
startTime.set(日历秒,0)
var fromTime=registrationPreferences.getFromTime()
var toTime=registrationPreferences.getToTime()
什么时候{
fromTime.equals(“6个月”,对)->{
startTime.add(Calendar.MONTH,-6)
startTime.set(Calendar.DAY\u OF_MONTH,1)
}
fromTime.equals(“1年”,正确)->{
开始时间.添加(日历年,-1)
}
fromTime.equals(“2年”,正确)->{
开始时间.添加(日历年,-2)
}
fromTime.equals(“3年”,对)->{
开始时间.添加(日历年,-3)
}
}
val endTime=Calendar.getInstance()
什么时候{
toTime.equals(“6个月”,正确)->{
endTime.add(Calendar.MONTH,6)
}
toTime.equals(“1年”,正确)->{
endTime.add(日历年,1)
}
toTime.equals(“2年”,正确)->{
endTime.add(日历年,2)
}
toTime.equals(“3年”,正确)->{
endTime.add(日历年,3)
}
}
val选择=
((“+CalendarContract.Events.DTSTART+”>=“+startTime.timeInMillis+”)和(“+CalendarContract.Events.DTEND+”