谷歌日历,获取位置?

时间:2011-09-07 11:14:33

标签: google-calendar-api gdata-api gdata

我在Google Calendar上使用JAVA和gdata api。 我正在尝试从公共日历中检索事件位置。这是我的方法:

private static void getCalendarEvents (CalendarService service, URL feedURL) 
        throws IOException, ServiceException{

        CalendarFeed resultFeed = service.getFeed(feedURL, CalendarFeed.class);
        for(int i = 0; i < resultFeed.getEntries().size(); i++){
        CalendarEntry entry = resultFeed.getEntries().get(i);


        System.out.println("\t" + entry.getLocations());

    }

在我的控制台中,对于“entry.getLocation()”部分,我不断获得如下输出:

[com.google.gdata.data.extensions.Where@1f3785d3]
[com.google.gdata.data.extensions.Where@1f3785d3]
....

根据描述,该方法应返回List类型,但显然我没有得到它。 任何人都知道我为什么会得到这个价值?或者我如何获得正确的返回值?

另请参阅Google Code上的CalendarEntry.class代码:     http://www.google.com/codesearch#EOYaOg_yTgg/trunk/java/src/com/google/gdata/data/calendar/CalendarEntry.java

非常感谢。


好的,谢谢!我发布的代码无法在此处检索事件的日期,请查看。 首先是我的getEventDates.class返回When对象列表:

 private static List<When> getEventDates(CalendarEntry entry){
    return entry.getRepeatingExtension(When.class);

}

我在下面打电话:

for(int i = 0; i < resultFeed.getEntries().size(); i++){
        CalendarEntry entry = resultFeed.getEntries().get(i);
        List<When> timeList = getEventDates(entry);
        System.out.println("\t" + i+". "+entry.getTitle().getPlainText() + "\t" + timeList.get(0).getValueString());

    }

这项最完成的工作......这意味着,我在timeList中获得了所有“null”。 我只想把内容放在xml中,请给我一些提示。 非常感谢!!

1 个答案:

答案 0 :(得分:0)

对entry.getLocations()的调用会返回您可以迭代的Where对象的列表。

例如,您可以使用每个Where实例的getValueString()方法来获取包含该位置的文本描述的字符串。

有关Where类的定义,请参阅http://code.google.com/p/gdata-java-client/source/browse/trunk/java/src/com/google/gdata/data/extensions/Where.java