2011-07-11 49 views

回答

2

您正朝着正確的方向前進。你只需要通過你想要待辦事項的國旗。可以找到一個例子here

要詳細說明下面的示例,有幾個語法錯誤,您可能需要不同的標誌。我不確定爲什麼需要警報,這聽起來像事件循環沒有被旋轉。在什麼情況下你稱這些位?

試試這個:

var arrayItems = new Array(); 

var todoListener = { 
    onOperationComplete: function(aCalendar, aStatus, aOperationType, aId, aDetail) {}, 
    onGetResult: function(aCalendar, aStatus, aItemType, aDetail, aCount, aItems) { 
     arrayItems = arrayItems.concat(aItems); 
    } 
}; 

var filter = aCalendar.ITEM_FILTER_TYPE_TODO | aCalendar.ITEM_FILTER_COMPLETED_ALL; 
aCalendar.getItems(filter, 0, null, null, todoListener); 
1

感謝你的榜樣,我明白瞭如何實現這是我的主要問題的聽衆。

因此,這裏是我的代碼:

var arrayItem = new Array; ; 

    var todoListener = 
    { 
     onOperationComplete: function(aCalendar, aStatus, aOperationType, aId, aDetail) {}, 
     onGetResult: function(aCalendar, aStatus, aItemType, aDetail, aCount, aItems) 
     {  
      for (let i=0; i < aCount; i++) 
      { 
       arrayItem.push(aItems[i]); 
      }   
     } 
    }; 

    var filter = aCalendar.ITEM_FILTER_ALL_ITEMS; 
    filter |= aCalendar.ITEM_FILTER_TYPE_TODO; 
    aCalendar.getItems(filter, 0, null, null, todoListener); 

不過,我有一個很奇怪的問題在這裏。其實,我沒有得到這個代碼的待辦事項。我必須在getItems()方法之後添加一個alert("something");以獲取我的數組項目。否則,它是空的。

+0

偵聽器是異步的,您需要在調用getItems之後旋轉事件循環,或者更好地更改模式以繼續在偵聽器或嵌套函數中處理。 –