7

ここに画像の説明を入力

Android 4.0 のデフォルト カレンダーでは、次の月に移動する場合はカレンダーをスクロールする必要がありますが、上の画像にある矢印を押して次の月または前の月に移動する必要があります。また、デフォルトのカレンダーに追加したいと思います。イベントを追加すると、その日付は画像のようにマークされます。

このCalendarViewを使用しました。

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

この CalendarView にイベントを追加する方法を実用的に知りたいです。

4

1 に答える 1

7

次の月または前の月に移動するには、次のコードを使用できます。

    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);
        }
    });

デフォルトのカレンダーにイベントを追加したい場合は、リンク @adam2510 が投稿されていることを確認する必要があります。使用できるサンプルコードは次のとおりです。

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);
}

ただしCalendarView、イベントで使用するために作成されたものではありません。Androidのドキュメントでは、これを読むことができますCalendarView

「このクラスは、日付を表示および選択するためのカレンダー ウィジェットです」。

セルのプロパティを変更する簡単な方法が見つかりませんでした。
独自のカレンダーにイベントを追加する場合は、すべてのビューのプロパティを変更できる独自のカレンダーを実装することをお勧めします。google.com で見つけることができるカレンダーの実装がたくさんあります。

于 2012-10-12T10:32:00.530 に答える