ical4j - 根据 UID 查找事件
ical4j - Find Event based on the UID
我正在使用 ical4j 创建我的 .ical - 文件和保存事件。
但是如何在日历中找到存储的 VEvent?
我有以下代码,但它不起作用?
我得到了我的日历 -> 这是工作,我已经调试了它
public VEvent findEvent(CalendarExtern calendarExtern, String hashId) throws IOException, ParserException {
Calendar calendar = readCalenderFromFile(calendarExtern);
for (Component component : calendar.getComponents(Component.VEVENT)) {
if (hashId.equals(component.getProperty(Property.UID))) {
VEvent event = (VEvent) component;
return event;
}
}
return null;
}
有什么想法吗?非常感谢
component.getProperty(Property.UID) returns a 属性 所以你真正想做的是:
if (hashId.equals(component.getProperty(Property.UID).getValue()))...
当然,根据您的输入,您可能希望在执行 getValue() 之前检查没有 UID 属性 的组件。
使用 ComponentGroup 查找事件最新版本的替代方法:
ComponentGroup<VEvent> group = new ComponentGroup(
calendar.getComponents(Component.VEVENT),
new Uid(hashId));
return group.getLatestRevision();
我正在使用 ical4j 创建我的 .ical - 文件和保存事件。 但是如何在日历中找到存储的 VEvent?
我有以下代码,但它不起作用? 我得到了我的日历 -> 这是工作,我已经调试了它
public VEvent findEvent(CalendarExtern calendarExtern, String hashId) throws IOException, ParserException {
Calendar calendar = readCalenderFromFile(calendarExtern);
for (Component component : calendar.getComponents(Component.VEVENT)) {
if (hashId.equals(component.getProperty(Property.UID))) {
VEvent event = (VEvent) component;
return event;
}
}
return null;
}
有什么想法吗?非常感谢
component.getProperty(Property.UID) returns a 属性 所以你真正想做的是:
if (hashId.equals(component.getProperty(Property.UID).getValue()))...
当然,根据您的输入,您可能希望在执行 getValue() 之前检查没有 UID 属性 的组件。
使用 ComponentGroup 查找事件最新版本的替代方法:
ComponentGroup<VEvent> group = new ComponentGroup(
calendar.getComponents(Component.VEVENT),
new Uid(hashId));
return group.getLatestRevision();