2012-08-28 14 views
7

enter image description hereCome aggiungere eventi nel calendario predefinito di Android 4.0?

In Android 4.0 calendario predefinito se vogliamo passare al prossimo mese, allora abbiamo bisogno di scorrere il calendario, ma ho bisogno di passare al mese precedente o successivo premendo le frecce esistevano nell'immagine sopra. E anche io voglio aggiungere al calendario predefinito. Se aggiungi l'evento, quella data dovrebbe essere contrassegnata come nell'immagine.

Ho usato questo CalendarView.

<CalendarView 
    android:id="@+id/calendarView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" /> 

Voglio sapere come utilizzare aggiungere evento a questo CalendarView pragmatico.

+0

http://stackoverflow.com/a/7892512/1037074 Questo è ciò che sarà necessario – adam2510

+0

@ adam2510 In 4.0 direttamente noi trascinare e rilasciare il calendario e poi come aggiungere l'evento. Ma nel codice dato non c'è alcun codice per questo. – Venkat

+0

Questo potrebbe aiutare https://developer.android.com/guide/topics/providers/calendar-provider.html prendere un lok nella sezione Eventi di aggiornamento – adam2510

risposta

7

Per passaggio al successivo o precedente mese è possibile utilizzare questo codice:

mButtonNext = (Button) findViewById(R.id.buttonNext); 
    mButtonNext.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Calendar cal = new GregorianCalendar(); 
      cal.setTimeInMillis(mCalendarView.getDate()); 
      cal.add(Calendar.MONTH, 1); 
      mCalendarView.setDate(cal.getTimeInMillis(), true, true); 
     } 
    }); 

    mButtonPrevious = (Button) findViewById(R.id.buttonPrevious); 
    mButtonPrevious.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Calendar cal = new GregorianCalendar(); 
      cal.setTimeInMillis(mCalendarView.getDate()); 
      cal.add(Calendar.MONTH, -1);     
      mCalendarView.setDate(cal.getTimeInMillis(), true, true); 
     } 
    }); 

Se si desidera aggiungere un evento nel calendario predefinito, bisogna vedere il link @ adam2510 postato. Ecco un esempio di codice è possibile utilizzare:

public void addEvent() { 
    ContentResolver cr = mContext.getContentResolver(); 
    ContentValues eventValues = new ContentValues(); 
    eventValues.put(Events.TITLE, "title"); 
    eventValues.put(Events.EVENT_LOCATION, "location"); 
    eventValues.put(Events.DTSTART, startTimeMilliseconds); 
    eventValues.put(Events.DTEND, endTimeMilliseconds); 
    eventValues.put(Events.CALENDAR_ID, "1");//Defaul calendar 
    eventValues.put(Events.EVENT_TIMEZONE, TimeZone.SHORT); 
    cr.insert(Events.CONTENT_URI, eventValues); 
} 

Ma CalendarView non è fatto per essere usato con gli eventi. Nella documentazione di Android è possibile leggere questo per CalendarView:

"Questa classe è un widget di calendario per la visualizzazione e la selezione di date".

Non ho trovato un modo semplice per modificare la proprietà della cella.
Se si desidera aggiungere un evento nel proprio calendario, è meglio implementare il proprio calendario in cui è possibile modificare le proprietà di tutte le viste. C'è un sacco di implementazioni di calendario si può trovare in google.com

Problemi correlati