(私はそのクールなアイディアであるが、私自身のサイトの支払いをしたいいけません)あなたの新しいカレンダーを表示するために、あなた自身のイベントを作成することができます。以下は、新しいカレンダーを作成するためのクラスです。
public class CalendarMapper {
private static final String ACCOUNT_NAME = "private";
private static final String INT_NAME_PREFIX = "priv";
@SuppressLint("NewApi")
private static Uri buildCalUri() {
return CalendarContract.Calendars.CONTENT_URI
.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, ACCOUNT_NAME)
.appendQueryParameter(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL)
.build();
}
private static ContentValues buildContentValues(Calendar calendar) {
String dispName = "TUM3"; //Calendar.getName() returns a String
String intName = INT_NAME_PREFIX + dispName;
final ContentValues cv = new ContentValues();
cv.put(Calendars.ACCOUNT_NAME, ACCOUNT_NAME);
cv.put(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
cv.put(Calendars.NAME, intName);
cv.put(Calendars.CALENDAR_DISPLAY_NAME, dispName);
//cv.put(Calendars.CALENDAR_COLOR, calendar.getColor()); //Calendar.getColor() returns int
cv.put(Calendars.CALENDAR_ACCESS_LEVEL, Calendars.CAL_ACCESS_OWNER);
cv.put(Calendars.OWNER_ACCOUNT, ACCOUNT_NAME);
cv.put(Calendars.VISIBLE, 1);
cv.put(Calendars.SYNC_EVENTS, 1);
return cv;
}
@SuppressWarnings("deprecation")
public static Uri addCalendar(Calendar calendar, ContentResolver cr) {
if (calendar == null)
throw new IllegalArgumentException();
final ContentValues cv = buildContentValues(calendar);
Uri calUri = buildCalUri();
Uri cancelUri=cr.insert(calUri, cv);
return cancelUri;
}
}
メインアクティビティでは、カレンダーの追加を呼び出してカレンダーを作成し、このカレンダーに予定を追加することができます。このカレンダーを削除するために
Uri cancelUri;
@SuppressLint("NewApi")
public void displayCal(View view){
ContentResolver crv = getContentResolver();
Calendar calendar = Calendar.getInstance();
cancelUri= CalendarMapper.addCalendar(calendar, crv);
long calID=2; //ID of the newly created calendar. You can query the calendars table to get the ID of your calendar
long endMillis = 10100;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 9, 14, 7, 30);
long startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 9, 14, 8, 45);
endMillis = endTime.getTimeInMillis();
ContentResolver cr = getContentResolver();
ContentValues values2 = new ContentValues();
values2.put(Events.DTSTART, startMillis);
values2.put(Events.DTEND, endMillis);
values2.put(Events.TITLE, "Jazzercise");
values2.put(Events.DESCRIPTION, "Group workout");
values2.put(Events.CALENDAR_ID, calID);
values2.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uri = cr.insert(Events.CONTENT_URI, values2);
Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
builder.appendPath("time");
ContentUris.appendId(builder, startMillis);
Intent intent = new Intent(Intent.ACTION_VIEW)
.setData(builder.build());
startActivity(intent);
}
public void delCal(View view){
ContentResolver crv = getContentResolver();
crv.delete(cancelUri, null, null);
}
の下にあなたが答えをしてくださいダニできるように、あなたはそれを行うことができますか。$?緑のダニのためだけに:P –
Hiiii Nik 私はあなたの質問を見て、それからansを得ました。私は最初のscreenshot.ifを与えられたようなものです同じ日のビューを作る必要があります。私もこのカレンダーを理解できない。 – Google
あなたはこれをお探しですか? http://stackoverflow.com/questions/6080307/how-to-display-a-calendar-ui-in-an-android-applicationこの方法で、カレンダービューをカスタマイズできます。 **編集**また、http://code.google.com/p/android-wheel/downloads/listやhttp://code.google.com/のようなカスタムデイピーカーを作ることもできます。com/p/android-wheel/source/browse /#svn%2Ftrunk%2Fwheel%253Fstate%253Dloosed – Dharmendra