簡體   English   中英

如何創建從今天開始X天結束的Android日歷活動

[英]How to create an Android Calendar event that ends X days from today

我正在開發具有后續功能的android應用。

人們將能夠輸入一些信息,包括描述和他們希望此事件開始的未來天數(即1天,10天,20天),然后單擊“創建”按鈕進行創建。

我遇到的問題是,我希望日期在未來的X天開始,其中X是未來的開始天數(以int表示的天數,即IE 1天,10天)。

這是我的代碼:

//Create Calendar event
public void CreateEvent(){
    //Variables title, location, description, and days_from_now are all defined elsewhere
    Calendar mycal = Calendar.getInstance();

    Intent calIntent = new Intent(Intent.ACTION_INSERT);
    calIntent.setType("vnd.android.cursor.item/event");

    //Put information in
    calIntent.putExtra(Events.TITLE, title); 
    calIntent.putExtra(Events.EVENT_LOCATION, location); 
    calIntent.putExtra(Events.DESCRIPTION, description);

    **//Increment the date by X days
    mycal.add(mycal.DATE, days_from_now );

    //Start and end time
    long startTime = mycal.getTimeInMillis(); //Convert to milliseconds
    long endTime = startTime+900000; //15 minutes

    //Put the calculated start and end time into the calIntent Intent
    calIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startTime);
    calIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime);**

    startActivity(calIntent); 

}

終於成功了! 粗體代碼是所缺少的。 感謝您的想法,他們將我引向正確的代碼!

簡單的代碼:

public void addEvent(long calendarID, String title, long startEvent,
            long endEvent, int reminder, String description, long createDate) {
        try {
            System.out.println("add event to calendar");
            ContentResolver cr = context.getContentResolver();
            ContentValues values = new ContentValues();
            values.put(Events.DTSTART, startEvent);
            values.put(Events.DTEND, endEvent);
            values.put(Events.TITLE, title);
            values.put(Events.DESCRIPTION, description);
            values.put(Events.CALENDAR_ID, calendarID);
            values.put(Events.EVENT_TIMEZONE, Calendar.getInstance()
                    .getTimeZone().getID());
            System.out.println(Calendar.getInstance().getTimeZone().getID());
            Uri uri = cr.insert(Events.CONTENT_URI, values);
            long eventId = Long.parseLong(uri.getLastPathSegment());
            setReminder(cr, eventId, reminder);             
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void setReminder(ContentResolver cr, long eventID, int reminder) {
        try {
            ContentValues values = new ContentValues();
            values.put(Reminders.MINUTES, reminder / 60000);
            values.put(Reminders.EVENT_ID, eventID);
            values.put(Reminders.METHOD, Reminders.METHOD_ALERT);
            Uri uri = cr.insert(Reminders.CONTENT_URI, values);
            Cursor c = Reminders.query(cr, eventID,
                    new String[] { Reminders.MINUTES });
            if (c.moveToFirst()) {
                System.out.println("calendar"
                        + c.getInt(c.getColumnIndex(Reminders.MINUTES)));
            }
            c.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM