我正在开发一个支持Google Calendar API的自定义记事本应用程序,并且已经有一段时间了。问题是我尝试(使用标准代码)更新/调整现有事件。但是在VB中,我只能设法获得一个AtomFeed,并且只允许更改事件日期/时间(就我所见/ Google而言)。代码:
EventQuery myQuery = new EventQuery(feedUrl);
myQuery.Query = "Tennis";
EventFeed myResultsFeed = myService.Query(myQuery);
if (myResultsFeed.Entries.Count > 0) {
AtomEntry firstMatchEntry = myResultsFeed.Entries0];
String myEntryTitle = firstMatchEntry.Title.Text;
在此代码中,查询返回一个EventFeed类型,其中包含可通过When类轻松访问的单个事件的开始/结束时间。但是,如果我将该代码转换为VB而不是C#(我在VB.NET 2010中创建了我的笔记应用程序),则service.Query方法仅返回AtomFeed。我似乎无法从AtomEntry访问事件开始/结束日期,也没有找到解析或将Atom类型转换为事件类型类的方法...我当前的代码:
Dim myResultsFeed As AtomFeed = service.Query(myQuery)
Dim firstMatchEntry As AtomEntry
If (myResultsFeed.Entries.Count > 0) Then
firstMatchEntry = myResultsFeed.Entries(0)
firstMatchEntry.Title.Text = updatedNote.Subject
'Would be available in the EventEntry class
'firstMatchEntry.times.add(New [When](gNote.GCalendarDate, endDate))
firstMatchEntry.Update()
我在网上广泛搜索过。任何回复都非常感谢!
答案 0 :(得分:1)
我不确定我是否理解你的问题,但如果你想从vb.net更新你的开始和结束时间,你首先必须清除现有的时间并添加一个新的时间,就好像你会用create事件做的那样。以下是代码。
>
Dim srvce As New Google.GData.Calendar.CalendarService("gCal") Dim query As New FeedQuery Dim evntEntry As Google.GData.Calendar.EventEntry query.Uri = New Uri(eventSelfURI) 'SELF URI IS THE URI FOR GOOGLE CALENDAR FEED srvce.setUserCredentials("<<EMAIL>>", "<<PASSWORD>>") Dim calfeed As AtomFeed calfeed = srvce.Query(query) evntEntry.Title.Text = newTitle evntEntry.Content.Content = newContent 'SETTING UP THE START AND END TIME - FIRST CLEARING EXISTING TIMING AND ADDING NEW evntEntry.Times.Clear() 'THIS WILL CLEAR THE EXISTING TIME Dim newTime As New [When]() newTime.StartTime = newStartDateTime newTime.EndTime = newEndDateTime evntEntry.Times.Add(newTime) evntEntry.Update()
希望这会对你有所帮助。