2010-07-12 52 views
0

我想写一个简单的方法,即从谷歌日历中获取事件。问题是,如果我试图在我的事件上调用getTimes(),我得到一个Indexoutofbounds异常。 我只是无法弄清楚问题所在。Google日历indexoutofbounds getTimes()

感谢提前:)

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

我的猜测是,什么是错的与你的第二个GET(我),

resultFeed.getEntries().get(i).getTimes().get(i).getStartTime().toString() 

虽然第一个 “我” 在get(i)是由于for循环中的i < resultFeed.getEntries().size();条件保证工作,get(i)中的第二个“i”没有任何条件来检查其范围。

请发布您的完整例外跟踪,如果这不是你的问题。