如何在android中解析google calendar v3提要
我有一个应用程序,可以读取一个公共谷歌日历提要,并在列表视图中填充此日历中的事件。问题是我使用这个url来获取提要 现在google calendar api v2似乎已经停止使用,这个url是无效的,并且抛出了一个禁止的错误403,所以当我尝试在我的应用程序中使用它时,它崩溃了 下面是我解析该url中xml的代码:如何在android中解析google calendar v3提要,android,google-calendar-api,Android,Google Calendar Api,我有一个应用程序,可以读取一个公共谷歌日历提要,并在列表视图中填充此日历中的事件。问题是我使用这个url来获取提要 现在google calendar api v2似乎已经停止使用,这个url是无效的,并且抛出了一个禁止的错误403,所以当我尝试在我的应用程序中使用它时,它崩溃了 下面是我解析该url中xml的代码: public ArrayList<Agenda> parse() { ArrayList<Agenda> events = null; X
public ArrayList<Agenda> parse() {
ArrayList<Agenda> events = null;
XmlPullParser parser = Xml.newPullParser();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try
{
parser.setInput(this.getInputStream(), null);
int parserEvent = parser.getEventType();
Agenda event = null;
while (parserEvent != XmlPullParser.END_DOCUMENT)
{
String etiqueta = null;
switch (parserEvent)
{
case XmlPullParser.START_DOCUMENT:
events = new ArrayList<Agenda>();
break;
case XmlPullParser.START_TAG:
etiqueta = parser.getName();
if (etiqueta.equals("entry"))
{
event = new Agenda();
}
else if (event != null)
{
if (etiqueta.equals("title")){
String titol = parser.nextText();
event.setTitol(titol);
Log.d("Titol Event", titol);
}
else if (etiqueta.equals("where")){
String lloc = parser.getAttributeValue(null, "valueString");
event.setLloc(lloc);
}
else if (etiqueta.equals("when")){
Date iniciEvent = null;
Date finalEvent = null;
String dataInici = (parser.getAttributeValue(null, "startTime"));
Log.d("DATA INICI", dataInici);
String dataFinal = (parser.getAttributeValue(null, "endTime"));
if(dataFinal == null){
break;
}
Log.d("DATA FINAL", dataFinal);
try {
iniciEvent = formatter.parse(dataInici);
event.setData(iniciEvent);
formatHoraCorrecta = true;
event.setAllDay(false);
} catch (ParseException e) {
// TODO Auto-generated catch block
Log.d("ERROR FORMAT DATA", e.toString());
formatHoraCorrecta = false;
event.setAllDay(true);
}
if(!formatHoraCorrecta){
dataInici = dataInici + "T00:00:00";
iniciEvent = formatter.parse(dataInici);
event.setData(iniciEvent);
dataFinal = dataFinal + "T00:00:00";
finalEvent = formatter.parse(dataFinal);
event.setDataFinal(finalEvent);
}else{
finalEvent = formatter.parse(dataFinal);
event.setDataFinal(finalEvent);
}
}else if(etiqueta.equals("content")){
event.setDescripcio(parser.nextText());
}
}
break;
case XmlPullParser.END_TAG:
etiqueta = parser.getName();
if (etiqueta.equals("entry") && event != null)
{
events.add(event);
}
break;
}
parserEvent = parser.next();
}
}catch (Exception ex){
Log.d("Exception ex", ex.toString());
throw new RuntimeException(ex);
}
return events;
}
我发现这个URL现在显示日历提要,但实际上显示信息的方式完全不同,所以代码不起作用
是否有一种方法可以解析google calendar v3提要中的信息,就像我以前做的那样,或者我必须使用其他方法?在calendar v2中,此代码将在您收到的响应是xml格式时起作用 但是对于Calender v3,必须更改解析方法以匹配中指定的新响应 你也可以参考这个问题:
希望有帮助 多谢各位。最后,我可以根据本教程解决我的问题: