2016-09-06 4 views
0

this tutorialの後に、WebViewのカレンダーイベントを追加できるようにしています。私は方法がのためにshouldOverrideUrlLoadingを使用していることを理解します。WebViewからカレンダーイベントを追加する

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日になります。私は何の間違いをしましたか?

答えて

0

自分自身で問題を解決しました。このバグはおそらくdocumentationのように非推奨の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]); 
関連する問題