繁体   English   中英

如何在谷歌日历android Kotlin中添加多个事件?

[英]how to add multiple events in google calendar android Kotlin?

对于日历,我们希望在 android 上的日历视图中显示多个事件。 来自 API https://myfarmapp1.herokuapp.com/api/v1/upcoming/actions/dates?userId=61efd161be38db6f4ab23fe7的事件。 使用上面的 API 我想在日历视图上显示多个事件。 问题是什么? 当我们在日历上设置事件日期时,它会在日历上显示最新事件,而以前的事件不会显示。

val call: Call<com.android.farmist.model.dateCalender.Date> =
   

                 Api_Controller().getInstacne().getDates(userId)
                call.enqueue(object : 
        Callback<com.android.farmist.model.dateCalender.Date> {

                    @SuppressLint("NotifyDataSetChanged")
                    override fun onResponse(
                        call: Call<com.android.farmist.model.dateCalender.Date>,
                        response: Response<com.android.farmist.model.dateCalender.Date>
                    )
                    {

                        val respo = response.body()
                        if (respo ?.allDates!= null) {


                            for (i in respo.allDates)
                            {

                                val y = i.value.year
                                val m = i.value.day
                                val d = i.value.date

                                val  events: MutableList<EventDay> = ArrayList()
                                val  calendar = Calendar.getInstance()
                                val  calendar2=Calendar.getInstance()
                                val  calendar3 = Calendar.getInstance()

                               calendar.set(y,m-1,d)
//                                Toast.makeText(requireActivity(),
//                                    "${calendar2}",
//                                    Toast.LENGTH_SHORT).show()
                                calendar2.set(y,m-1,d-1)
                                calendar3.set(y,m-1,d-2)

                               events.add(EventDay(calendar, R.drawable.dot))
                                Log.d("editDate","${(y ).toString() + (m-1 ).toString() + (d ).toString()}")
                                events.add(EventDay(calendar2, R.drawable.dot))
                                events.add(EventDay(calendar3, R.drawable.dot))
                                binding.calendar.setEvents(events)
                            }
                        }
                      }

                    override fun onFailure(
                        call: Call<com.android.farmist.model.dateCalender.Date>,
                        t: Throwable
                    ) {
                        Log.d("userId", t.toString())


                    }
                })

谷歌日历 API 允许设置多个事件,例如通过启动意图列表。

import androidx.core.content.ContextCompat.startActivities

startActivities(context, arrayOf(intent, intent2))

同样, startActivity 启动单个意图

import androidx.core.content.ContextCompat.startActivity

startActivity(context, intent, null)

Android 开发人员指南中所述,意图本身可以如下所示。

import android.content.Intent

val startMillis: Long = Calendar.getInstance().run {
    set(2012, 0, 19, 7, 30)
    timeInMillis
}
val endMillis: Long = Calendar.getInstance().run {
    set(2012, 0, 19, 8, 30)
    timeInMillis
}
val intent = Intent(Intent.ACTION_INSERT)
        .setData(CalendarContract.Events.CONTENT_URI)
        .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startMillis)
        .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endMillis)
        .putExtra(CalendarContract.Events.TITLE, "Yoga")
        .putExtra(CalendarContract.Events.DESCRIPTION, "Group class")
        .putExtra(CalendarContract.Events.EVENT_LOCATION, "The gym")
        .putExtra(CalendarContract.Events.AVAILABILITY, CalendarContract.Events.AVAILABILITY_BUSY)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM