[android]添加从日历事件WebView

标签: Android webView
发布时间: 2016/10/10 20:59:03
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我跟随本教程制作添加日历事件从 WebView 可能。我理解的一个方法使用 shouldOverrideUrlLoading 网址为 date:

public boolean shouldOverrideUrlLoading (WebView view, String url) {

if (url.startsWith("date:")) {

Log.d(this.getClass().getCanonicalName(),url);

Calendar beginCal = Calendar.getInstance();

Calendar endCal = Calendar.getInstance();

Date beginDate = new Date(0, 0, 0);

Date endDate = new Date(0, 0, 0);

String parsed = url.substring(5);

String[] components = parsed.split(",");

beginDate.setMonth(Integer.parseInt(components[0]));

beginDate.setDate(Integer.parseInt(components[1]));

beginDate.setYear(Integer.parseInt(components[2]));

beginCal.setTime(beginDate);

endDate.setMonth(Integer.parseInt(components[3]));

endDate.setDate(Integer.parseInt(components[4]));

endDate.setYear(Integer.parseInt(components[5]));

endCal.setTime(endDate);

calendarevent(beginCal, endCal, components[6]);

return true;

}

return false;

}

});

然而,我不能理解的格式 date: 我应该把放的 url:

<a href='date:beginmonth, beginday, beginyear, 
endmonth, endday, endyear, My Event Description'>
My event link</a>

例如,我有一个事件在 2016 年 9 月 15 日,所以我做了成为的 url:

<a href='date:09,15,2016,09,15,2016, My Event Description'>
    My event link</a>

我得到了错误的日期。日期成为 2011 年 5 月 11 日。我会犯什么错误?

解决方法 1:

我自己解决了问题。Bug 发生可能的用法已弃用 Date 根据文档。改为 Calendar.set 和它现在的工作。

Calendar beginCal = Calendar.getInstance();
Calendar endCal = Calendar.getInstance();

String parsed = url.substring(5);
String[] components = parsed.split(",");
int month = Integer.parseInt(components[0])-1;
int day = Integer.parseInt(components[1]);
int year = Integer.parseInt(components[2]);
beginCal.set(year, month, day);

int monthend = Integer.parseInt(components[3])-1;
int dayend = Integer.parseInt(components[4]);
int yearend = Integer.parseInt(components[5]);

endCal.set(yearend, monthend, dayend);
calendarevent(beginCal, endCal, components[6]);
赞助商