我正在尝试编写一个简单的方法,从Google日历中获取事件。问题是,如果我试图在我的事件上调用getTimes(),我会得到一个Indexoutofbounds异常。 我只是无法弄清楚问题是什么。
提前致谢:)
jTextArea1.setText("");
try {
CalendarService myService = new CalendarService("myApp");
myService.setUserCredentials(username, password);
String eventTitle = "";
for (URL u : urls) {
CalendarQuery myQuery = new CalendarQuery(u);
myQuery.setMinimumStartTime(convertStartDateToDateTime());
myQuery.setMaximumStartTime(convertEndDateToDateTime());
myQuery.setFullTextQuery(searchTF.getText());
CalendarEventFeed resultFeed = myService.query(myQuery, CalendarEventFeed.class);
// System.out.println(resultFeed.getTitle().getPlainText());
for (int i = 0; i < resultFeed.getEntries().size(); i++) {
CalendarEventEntry entry = resultFeed.getEntries().get(i);
if (resultFeed.getEntries().size() > 0) {
jTextArea1.setText(jTextArea1.getText()
+ resultFeed.getTitle().getPlainText()
+ "\n");
eventTitle = resultFeed.getEntries().get(i).getTitle().getPlainText();
jTextArea1.setText(jTextArea1.getText() + eventTitle + "\n");
jTextArea1.setText(jTextArea1.getText()
+ "Start: " + resultFeed.getEntries().get(i).getTimes().get(i).getStartTime().toString() + "\n"
+ "Slut: " + resultFeed.getEntries().get(i).getTimes().get(i).getEndTime().toString() + "\n");
}
jTextArea1.setText(jTextArea1.getText() + "\n");
}
}
答案 0 :(得分:0)
我的猜测是你第二次得到(i),
出了问题resultFeed.getEntries().get(i).getTimes().get(i).getStartTime().toString()
虽然get(i)中的第一个“i”由于for循环中的i < resultFeed.getEntries().size();
条件而保证有效,但get(i)中的第二个“i”没有任何条件检查它的范围。
如果这不是您的问题,请发布完整的异常跟踪。