1

我需要从日历中提取的事件中找到存储在 EventList 中的事件数。

没有size()找到方法。

下面是代码

EventList eventList = (EventList)PIM.getInstance().openPIMList(
        PIM.EVENT_LIST, PIM.READ_WRITE);
Enumeration eventsList = eventList.items(EventList.STARTING, startDateEvent, endDateEvent, false);

如何在 eventsList 枚举中找到事件数?

4

1 回答 1

1

不幸的是,如果您只想要开始日期和结束日期之间的事件数,则需要计算它们。 Enumeration不提供任何接口来获取元素的数量。

 EventList eventList = (EventList)PIM.getInstance().openPIMList(
       PIM.EVENT_LIST, PIM.READ_WRITE);
 Enumeration eventsList = eventList.items(EventList.STARTING, startDateEvent, endDateEvent, false);
 int numEvents = 0;
 while (eventsList.hasMoreElements()) {
    eventsList.nextElement();
    numEvents++;
 }
 System.out.println("There are " + numEvents + " events in the list");

如果在此计数后仍想遍历列表,则需要通过再次Enumeration调用来获取新对象。eventList.items()

但是,如果您想要整个 中的事件数eventList,则可以通过将完整列表转换为 a 来获得大小BlackBerryEventList

来自BlackBerry API 文档

当指定 pimListType==PIM.EVENT_LIST 时从 PIM.openPIMList() 检索到的任何 EventList 实例都将是 BlackBerryEventList 的一个实例,并且可以成功地转换为 BlackBerryEventList(如果需要),以便使用 RIM 扩展功能。

所以,你应该做的是将你的列表转换为 a BlackBerryEventList(或 a BlackBerryPIMList),然后你可以这样做:

EventList eventList = (EventList)PIM.getInstance().openPIMList(
            PIM.EVENT_LIST, PIM.READ_WRITE);

if (eventList instanceof BlackBerryEventList) {  // should always succeed
    BlackBerryEventList bbEventList = (BlackBerryEventList)eventList;
    int sizeOfList = bbEventList.size();
}
于 2013-07-31T17:45:56.747 回答