我已经在android中创建了日历提醒程序,但它是我试图修复的bug:
我想设定时间提醒:场景1:10和场景2:6 6PM。
每当我创建提醒和设置时间时,总是为AM而不是PM设置--如何配置AM和PM过滤器--我尝试了设置日历AM格式,但这似乎不起作用
下面是我的代码片段:
private void setReminderToCalendar() {
try {
if (format.trim().toLowerCase().equals("am")) {
calendar.set(Calendar.AM_PM, Calendar.AM);
} else {
calendar.set(Calendar.AM_PM, Calendar.PM);
}
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hr));
calendar.set(Calendar.MINUTE, Integer.parseInt(min));
calendar.add(Calendar.HOUR, -2); // create reminder 2 hr ago
insertReminderInCalendar(FindingVendorAndTimelineActivity.this, calendar);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void insertReminderInCalendar(Activity activity, Calendar cal) {
Uri EVENTS_URI = Uri.parse(getCalendarUriBase(true) + "events");
ContentResolver cr = activity.getContentResolver();
TimeZone timeZone = TimeZone.getDefault();
/** Inserting an event in calendar. */
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.CALENDAR_ID, 1);
values.put(CalendarContract.Events.TITLE, " Order Configured");
values.put(CalendarContract.Events.DESCRIPTION, "You have schedule roti order today");
values.put(CalendarContract.Events.ALL_DAY, 0);
// event starts at 0 minutes from now
values.put(CalendarContract.Events.DTSTART, cal.getTimeInMillis());
// ends 60 minutes from now
values.put(CalendarContract.Events.DTEND, cal.getTimeInMillis() + 2 * 60 * 1000);
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
values.put(CalendarContract.Events.HAS_ALARM, 1);
Uri event = cr.insert(EVENTS_URI, values);
// Display event id.
Toast.makeText(RotiApplication.getInstance(), " scheduled order is been added to you calendar", Toast.LENGTH_SHORT).show();
/** Adding reminder for event added. */
Uri REMINDERS_URI = Uri.parse(getCalendarUriBase(true) + "reminders");
values = new ContentValues();
values.put(CalendarContract.Reminders.EVENT_ID, Long.parseLong(event.getLastPathSegment()));
values.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT);
values.put(CalendarContract.Reminders.MINUTES, 10);
cr.insert(REMINDERS_URI, values);
}如何在Android日历事件中配置AM / PM过滤器?
发布于 2017-11-10 11:11:32
calendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hr));
使用HOUR_OF_DAY将时间设置为24小时格式(下午6点将是18小时)。使用HOUR_OF_DAY将使使用am/pm毫无用处。使用24小时格式并手动设置am/pm。日历将自动转换为上午/下午格式。
https://stackoverflow.com/questions/47221161
复制相似问题