如何以编程方式更改 android 中事件的当前日期和时间?
How do i programatically change the Current date and time of an event in android?
我正在尝试以编程方式将活动添加到我在 Android 中的日历中,我正在选择 日期、开始日期,结束日期,时间。
我正在尝试将其发送到日历,但出于某种原因,无论我发送什么,它都只显示当前日期。
我知道我们只需要在 毫秒 内发送,但我应该如何为以后的日期设置事件?
这是我的代码
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()));
}
您想根据用户选择的日期设置日历事件,因此您需要使用 myCalender
实例来获取 startTime
。
long startTime = myCalendar.getTime()+24*60*60*1000;
long endTime = startTime+ 60 * 30 * 1000;
下行创建当前日期时间的日历实例。因此 删除 它。
Calendar cal = Calendar.getInstance();
我正在尝试以编程方式将活动添加到我在 Android 中的日历中,我正在选择 日期、开始日期,结束日期,时间。
我正在尝试将其发送到日历,但出于某种原因,无论我发送什么,它都只显示当前日期。
我知道我们只需要在 毫秒 内发送,但我应该如何为以后的日期设置事件?
这是我的代码
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()));
}
您想根据用户选择的日期设置日历事件,因此您需要使用 myCalender
实例来获取 startTime
。
long startTime = myCalendar.getTime()+24*60*60*1000;
long endTime = startTime+ 60 * 30 * 1000;
下行创建当前日期时间的日历实例。因此 删除 它。
Calendar cal = Calendar.getInstance();