【发布时间】:2017-09-26 04:56:49
【问题描述】:
我正在尝试以编程方式将事件添加到我在 Android 中的日历中,我正在选择 date、开始日期、结束日期,时间。
我正在尝试将其发送到日历,但由于某种原因,无论我发送什么,它都只需要当前日期。
我知道我们只需要在 毫秒 内发送,但我应该如何为以后的日期设置事件?
这是我的代码
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
edittext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new DatePickerDialog(DetailsActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
readCalendar();
}
});
}
private void readCalendar() {
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setData(CalendarContract.Events.CONTENT_URI);
Calendar cal = Calendar.getInstance();
edittext.setSelected(true);
long startTime = cal.getTimeInMillis()+24*60*60*1000;
long endTime = startTime+ 60 * 30 * 1000;
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startTime);
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime);
intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, false);
intent.putExtra(CalendarContract.Events.TITLE, "DOCTOR APPOINTMENT");
startActivity(intent);
}
private void updateLabel() {
String myFormat = "MM/dd/yy";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
edittext.setText(sdf.format(myCalendar.getTime()));
}
【问题讨论】:
-
您到底想在日历中设置什么,因为使用此代码我可以看到结束时间的值为 +1 小时。
-
@KulsDroid 我这样做了,因为我不知道如何设置以后的日期,所以我只是增加毫秒,看看我是否可以设置一天后,有没有更简单的方法去做??
-
开始时间和结束时间到底要设置什么?
-
我选择的自定义日期和时间
标签: android android-calendar android-datepicker