简体   繁体   English

Android创建日历事件

[英]Android create calendar event

I need to create multiple calendar event for Android application, Using this question I was able to create single event. 我需要为Android应用程序创建多个日历事件,使用此问题我能够创建单个事件。

Is there any example or guide for create multiple calender events? 是否有任何创建多个日历事件的示例或指南?

Thank You, Chandana 谢谢你,Chandana

place these in a function 将它们放在一个函数中

like 喜欢

public void calenderevent(Calendar begintime, Calendar endtime){

    Intent intent = new Intent(Intent.ACTION_EDIT);
    intent.setType("vnd.android.cursor.item/event");
    intent.putExtra("beginTime", begintime.getTimeInMillis());
    intent.putExtra("allDay", true);
    intent.putExtra("rrule", "FREQ=YEARLY");
    intent.putExtra("endTime", endtime.getTimeInMillis()+60*60*1000);
    intent.putExtra("title", "A Test Event from android app");
    startActivity(intent);
}

As of ICS there is a better answer, as documented in the blog there is now an official API. 从ICS开始,有一个更好的答案,如博客中所述,现在有一个官方API。

Blog entry on the calendar APIs in ICS ICS中日历API上的博客条目

Here's the documentation on developer.android.com 这是developer.android.com上的文档

Cheers! 干杯!

This is all about above Android Build API 8 to ICS 15. 这就是Android Build API 8到ICS 15的全部内容。

String[] calendarsProjection = {
        CalendarContract.Calendars._ID,
        CalendarContract.Calendars.CALENDAR_DISPLAY_NAME,
        CalendarContract.Calendars.ACCOUNT_NAME
    };

String calName; 
String calId = null; 
Uri calendars= Uri.parse("content://com.android.calendar/events");
Cursor managedCursor = managedQuery(calendars, calendarsProjection, null, null, null);
if (managedCursor.moveToFirst()) 
{

    int nameColumn = managedCursor.getColumnIndex("account_name"); 
    int idColumn = managedCursor.getColumnIndex("_id");
    do 
    {
        calName = managedCursor.getString(nameColumn);
        calId = managedCursor.getString(idColumn);
        Log.e("Calendar Id : ",""+calId+" : "+calName);

    }
    while (managedCursor.moveToNext());
}


long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 6, 18, 13, 10, 10);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 6, 18, 16, 10, 10);
endMillis = endTime.getTimeInMillis();
System.out.println("Date start :"+startMillis);
System.out.println("Date start :"+endMillis);

// Insert Event
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.DTEND, endMillis);
values.put(CalendarContract.Events.TITLE, "Walk The Dog");
values.put(CalendarContract.Events.DESCRIPTION, "My dog is bored, so we're going on a really long walk!");
values.put(CalendarContract.Events.CALENDAR_ID, 1 );
values.put(CalendarContract.Events.EVENT_TIMEZONE, "UTC");
Uri uri = cr.insert(Uri.parse("content://com.android.calendar/events"), values);
String[] calendarsProjection = {
           CalendarContract.Calendars._ID,
           CalendarContract.Calendars.CALENDAR_DISPLAY_NAME,
           CalendarContract.Calendars.ACCOUNT_NAME
       };

      String calName; 
            String calId = null; 
      Uri calendars= Uri.parse("content://com.android.calendar/events");
            Cursor managedCursor = managedQuery(calendars, calendarsProjection, null, null, null);
            if (managedCursor.moveToFirst()) 
            {

                int nameColumn = managedCursor.getColumnIndex("account_name"); 
                int idColumn = managedCursor.getColumnIndex("_id");
                do 
                {
                    calName = managedCursor.getString(nameColumn);
                    calId = managedCursor.getString(idColumn);
                    Log.e("Calendar Id : ",""+calId+" : "+calName);

                }
                while (managedCursor.moveToNext());
            }


      long startMillis = 0;
      long endMillis = 0;
      Calendar beginTime = Calendar.getInstance();
      beginTime.set(2012, 6, 18, 13, 10, 10);
      startMillis = beginTime.getTimeInMillis();
      Calendar endTime = Calendar.getInstance();
      endTime.set(2012, 6, 18, 16, 10, 10);
      endMillis = endTime.getTimeInMillis();
      System.out.println("Date start :"+startMillis);
      System.out.println("Date start :"+endMillis);

      // Insert Event
      ContentResolver cr = getContentResolver();
      ContentValues values = new ContentValues();
      values.put(CalendarContract.Events.DTSTART, startMillis);
      values.put(CalendarContract.Events.DTEND, endMillis);
      values.put(CalendarContract.Events.TITLE, "Walk The Dog");
      values.put(CalendarContract.Events.DESCRIPTION, "My dog is bored, so we're going on a really long walk!");
      values.put(CalendarContract.Events.CALENDAR_ID, 1 );
      values.put(CalendarContract.Events.EVENT_TIMEZONE, "UTC");
      Uri uri = cr.insert(Uri.parse("content://com.android.calendar/events"), values);

Well..the last 2 post works fine in ICS but not in others. 嗯..最后2篇文章在ICS中工作正常但在其他工作中没有。 I suggest this class from google code . 我建议谷歌代码这个类。

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

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