Календарь в андроид - PullRequest
       1

Календарь в андроид

1 голос
/ 16 июня 2011

Я делаю Календарь с Android с этим кодом, который я нашел здесь.

Calendar cal = Calendar.getInstance();              
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", cal.getTimeInMillis());
intent.putExtra("allDay", false);
intent.putExtra("rrule", "FREQ=DAILY");
intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000);
intent.putExtra("title", "A Test Event from android app");
startActivity(intent);

в этом предложении intent.putExtra("beginTime", cal.getTimeInMillis()); мы указываем время начала, но как я могу это сделать, если я хочу указать время начала в течение 3 месяцев, например, потому что если я поставлю cal.getTimeInMillis()+10000000000 (много времени) день мероприятия не меняется.

Спасибо и извините, но мой английский плохой.

Ответы [ 3 ]

1 голос
/ 16 июня 2011

Вы можете использовать метод Календаря классов, чтобы добавить желаемое количество времени.

// Add 10 months to the calendar
   cal.add(Calendar.MONTH, 10);

Кстати, это неправильный вопрос для Android.

0 голосов
/ 16 июня 2011

Если вы хотите создать новое событие календаря, попробуйте этот код:

Intent intent = new Intent(Intent.ACTION_EDIT);  
intent.setType("vnd.android.cursor.item/event");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent,0);

Если вы хотите редактировать событие календаря, попробуйте этот код:

Uri uri = Uri.parse("content://calendar/events");
long eventId = mId.get(mPosition);
Uri newuri = ContentUris.withAppendedId(uri, eventId);
Intent intent = new Intent(Intent.ACTION_VIEW,newuri);
Cursor cursor = getContentResolver().query(newuri, new String[]{"dtstart","dtend",},null, null, null);
if(cursor.getCount()>0)
{
    cursor.moveToFirst();
    intent.putExtra("beginTime", cursor.getLong(cursor.getColumnIndex("dtstart")));
    intent.putExtra("endTime",  cursor.getLong(cursor.getColumnIndex("dtend")));
}
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent,1);
0 голосов
/ 16 июня 2011
int componentTimeToTimestamp(int year, int month, int day, int hour, int minute) {

    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, year);
    c.set(Calendar.MONTH, month);
    c.set(Calendar.DAY_OF_MONTH, day);
    c.set(Calendar.HOUR, hour);
    c.set(Calendar.MINUTE, minute);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);

    return (int) (c.getTimeInMillis() / 1000L);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...