Kalenderdaten unter Android
Addieren von vier Wochen zu einem Datum
package com.example;
public class Main extends android.app.Activity
{android.widget.DatePicker picker;
android.widget.DatePicker picker1;
android.widget.LinearLayout layout;public void onCreate( final android.os.Bundle bundle )
{ super.onCreate( bundle );
picker = new android.widget.DatePicker( this );
picker1 = new android.widget.DatePicker( this );final android.widget.DatePicker.OnDateChangedListener listener
= new android.widget.DatePicker.OnDateChangedListener()
{ public void onDateChanged
( final android.widget.DatePicker picker,
final int year, final int month, final int day )
{ final java.util.GregorianCalendar calendar = new java.util.GregorianCalendar( year, month, day );
calendar.add( java.util.Calendar.DATE, 28 );
final int y = calendar.get( java.util.Calendar.YEAR );
final int m = calendar.get( java.util.Calendar.MONTH );
final int d = calendar.get( java.util.Calendar.DAY_OF_MONTH );
picker1.updateDate( y, m, d ); }};final android.widget.DatePicker.OnDateChangedListener listener1
= new android.widget.DatePicker.OnDateChangedListener()
{ public void onDateChanged
( final android.widget.DatePicker picker,
final int year, final int month, final int day ) {} };final java.util.Calendar calendar
= java.util.Calendar.getInstance( java.util.TimeZone.getDefault() );
final int year = calendar.get( java.util.Calendar.YEAR );
final int month = calendar.get( java.util.Calendar.MONTH );
final int day = calendar.get( java.util.Calendar.DAY_OF_MONTH );
picker.init( year, month, day, listener );
picker1.init( year, month, day, listener1 );Main.this.layout = new android.widget.LinearLayout( this );
Main.this.layout.setOrientation( android.widget.LinearLayout.VERTICAL );
Main.this.layout.addView( Main.this.picker );
Main.this.layout.addView( Main.this.picker1 );
setContentView( Main.this.layout ); }}
Hinzufügen eines Termins zum Kalender (ungetestet)
Die Kalender-API wurde mehrfach überarbeitet. Das Hinzufügen eines Termins zum Kalender verlangt anscheinend ein Exchange - oder Google -Konto. Daher konnte dies nicht getestet werden. Daher enthält der folgende Code möglicherweise noch Fehler. An Stelle des Android-Kalenders kann möglicherweise auch eine Datenbank oder Tabellenkalkulation verwendet werden, um die Termine aufzunehmen, wenn kein Google-Konto erwünscht ist.
void add
( final java.util.GregorianCalendar calendar,
final android.app.Activity activity ){ final long date = calendar.getTimeInMillis();
calendar.add( java.util.Calendar.DATE, 1 );
final long date1 = calendar.getTimeInMillis();
final java.lang.String caluri = caluri( activity );if( caluri != null )
{ android.content.ContentResolver cr1 = getContentResolver();
android.content.ContentValues values = new android.content.ContentValues();
values.put( "calendar_id", 1 );
values.put( "title", "Text" );
values.put( "allDay", 0 );
values.put( "dtstart", date );
values.put( "dtend", date1 );
values.put( "description", "Volkshochschule" );
values.put( "hasAlarm", 1 );
values.put( "eventTimezone", android.text.format.Time.getCurrentTimezone() );final android.net.Uri events = android.net.Uri.parse( caluri + "events" );
android.net.Uri event = cr1.insert( events, values ); }}@java.lang.SuppressWarnings( "deprecation" )
java.lang.String caluri( final android.app.Activity activity )
{ String result = null;
android.net.Uri cals = android.net.Uri.parse( "content://calendar/calendars" );
android.database.Cursor cursor = null;
try
{ cursor = activity.managedQuery( cals, null, null, null, null ); }
catch( final java.lang.Exception exception ) {}
java.lang.System.out.println( "-5" );
if( cursor != null )result = "content://calendar/";
else
{ cals = android.net.Uri.parse( "content://com.android.calendar/calendars" );
try
{ cursor = activity.managedQuery( cals, null, null, null, null ); }
catch( final java.lang.Exception e ) {}
if( cursor != null )
result = "content://com.android.calendar/"; }
return result; }- Zu AndroidManifest.xml hinzuzufügen
<uses-permission android:name="android.permission.READ_CALENDAR"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>