2011-04-06 26 views

cevap

12

sadece belirli bir takvime bir giriş eklemek için bir takvim

bir tek Oluşum Olay ekleme

.. bu denemek, kullandığımız eklemek için bir takvim girişi yapılandırmanız gerekir ContentValues ​​aşağıdaki gibi:

ContentValues event = new ContentValues(); 

Her etkinlik belirli Takvim bağlı olması gerekir, bu nedenle ayarlamak istediğiniz gidiyoruz ilk şey içine bu olay eklemek için Takvim tanımlayıcınız:

event.put("calendar_id", calId); 

Biz daha sonra etkinlik başlığı, açıklama ve konum gibi Dize alanları dahil olmak üzere etkinlikle ilgili temel bilgileri ayarlayın.

event.put("title", "Event Title"); 
event.put("description", "Event Desc"); 
event.put("eventLocation", "Event Location"); 

Bir olayın saatini ve tarihini yapılandırmak için bir dizi farklı seçenek vardır.

event.put("allDay", 1); // 0 for false, 1 for true 
: Biz bir doğum günü veya tatil ekliyorsanız

long startTime = START_TIME_MS; 
long endTime = END_TIME_MS; 
event.put("dtstart", startTime); 
event.put("dtend", endTime); 

, biz bütün gün bir olay olarak girdi ayarlarsınız:

Biz etkinliklerin başlangıç ​​ve aşağıdaki gibi bilgileri sona ayarlayabilirsiniz

Bu bilgi çoğu giriş için yeterlidir. Bununla birlikte, başka bir dizi yararlı takvim girişi özniteliği vardır.

Örneğin, (0), teyit geçici etkinlik durumunu ayarlayabilirsiniz (1) veya iptal (2):

event.put("eventStatus", 1); 

Sen varsayılan görünürlüğünü ayarlayarak bu olayı kimlerin görebileceğini kontrol edebilirsiniz (0), gizli (1), özel (2), veya kamu (3):

event.put("visibility", 0); 

bir etkinlik zamanı tüketir olmadığını Sen opak olan şeffaflığını ayarlayarak takvimde (zamanlama çatışmaları olabilir) kontrol edebilirsiniz (0) veya şeffaf (1).

event.put("transparency", 0); 
Sen şöyle bir olay, bir hatırlatma alarmı tetikler denetleyebilirsiniz

:

takvim olayı doğru yapılandırılmış kez
event.put("hasAlarm", 1); // 0 for false, 1 for true 

, biz yeni bir takvim girişi eklemek için ContentResolver kullanmaya hazır takvim için uygun URI:

Uri eventsUri = Uri.parse("content://calendar/events"); 
    Uri url = getContentResolver().insert(eventsUri, event); 

uç() metodu temas Takvim içerik sağlayıcı ve girişimler çağrısı beğenme içine girişini eklemek priate kullanıcı Takvimi. Takvim uygulamasına gidip başlattığınızda, takvim girişinizi uygun Takvimde görmelisiniz.Takvim senkronize edildiğinden, Google Takvim'i web üzerinde kullanıyorsanız, Takvim girişini de çevrimiçi olarak görürsünüz.

bir Takvim

ayrıca Takvim düzenli etkinlikler yapılandırabilirsiniz bir Düzenli Etkinliği ekleme. Bunu yapmak için, reklama tekrarlama kuralı biçiminde etkinliğe birkaç alan daha eklemelisiniz. Kural belirtimi RFC2445 dayanmaktadır.

+0

'Takvim cal = Calendar.getInstance(); Niyet amacı = yeni Niyet (Intent.ACTION_EDIT); intent.setType ("vnd.android.cursor.item/event"); intent.putExtra ("beginTime", cal.getTimeInMillis()); intent.putExtra ("allDay", true); intent.putExtra ("rrule", "FREQ = YEARLY"); intent.putExtra ("endTime", cal.getTimeInMillis() + 60 * 60 * 1000); intent.putExtra ("title", "Android uygulamasından bir Test Etkinliği"); startActivity (intent); başka büyük olasılıkla size yardımcı olacaktır ...! – Hussain

+0

Harika cevap .. bana çok yardımcı oldu. Teşekkürler. –

+0

@Hussain: Çok İyi Bilgi. Şerefe –

1

bu soru için kesin cevaptır

Uri uri = Uri.parse("content://calendar/events"); 
    long eventId = calendeeventid; 
    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"))); 
    }