EventList中的事件数

时间:2013-07-31 14:39:12

标签: blackberry java-me calendar enumeration

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

找不到size()方法。

以下是代码

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

如何在eventsList Enumeration中找到事件数?

1 个答案:

答案 0 :(得分: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中的事件数量,那么您可以通过将完整列表转换为BlackBerryEventList来获取大小:

来自the BlackBerry API docs

  

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

那么,您应该做的是将您的列表转换为BlackBerryEventList(或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();
}