Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 只需检查日历事件?_Android_Events_Calendar - Fatal编程技术网

Android 只需检查日历事件?

Android 只需检查日历事件?,android,events,calendar,Android,Events,Calendar,我正在尝试编写一个Android应用程序,它将返回两个日期之间发生的已定义日历的所有事件。 我在网上找到了很多图图来读/写事件,但没有一本解释如何明确使用。事实上,我能够返回在所需间隔之间开始或结束的所有事件,但结果不包含重复事件。是的,但前提是时间间隔中包含dtstart日期。如果在间隔期间发生重复事件,则不会显示 因此,我的问题是:是否有一种简单的方法可以返回那些在日期间隔内尚未开始但在日期间隔内发生的重复事件?或者——我必须为日历中的每个重复事件爬进rrule和rdate公式,以确定是否在

我正在尝试编写一个Android应用程序,它将返回两个日期之间发生的已定义日历的所有事件。
我在网上找到了很多图图来读/写事件,但没有一本解释如何明确使用。事实上,我能够返回在所需间隔之间开始或结束的所有事件,但结果不包含重复事件。是的,但前提是时间间隔中包含dtstart日期。如果在间隔期间发生重复事件,则不会显示

因此,我的问题是:是否有一种简单的方法可以返回那些在日期间隔内尚未开始但在日期间隔内发生的重复事件?或者——我必须为日历中的每个重复事件爬进rrule和rdate公式,以确定是否在间隔之间设置了事件(在我看来,这似乎非常复杂)?
下面的代码使我能够为id=5的日历返回1984年3月13日午夜到1984年3月13日中午之间的事件

 Calendar cal = Calendar.getInstance();
  cal.set(1984, 2, 13, 0, 0, 0);// 13 MARS 1984!!!
  long calMilSec = cal.getTimeInMillis();
  String[] l_projection = new String[]{"title", "dtstart", "dtend", "rrule"};
  Cursor l_managedCursor = this.managedQuery(l_eventUri, l_projection, "calendar_id="+5+" AND dtstart>" + (calMilSec) + " AND dtstart<" + (calMilSec+43200000), null, "dtstart ASC");
  if (l_managedCursor.moveToFirst()) {
      int l_cnt = 0;
      String l_title;
      long l_begin;
      long l_end;
      String l_rrule;
      StringBuilder l_displayText = new StringBuilder();
      int l_colTitle = l_managedCursor.getColumnIndex(l_projection[0]);
      int l_colBegin = l_managedCursor.getColumnIndex(l_projection[1]);
      int l_colEnd = l_managedCursor.getColumnIndex(l_projection[2]);
      int l_colRule = l_managedCursor.getColumnIndex(l_projection[3]);
      do {
          l_title = l_managedCursor.getString(l_colTitle);
          l_begin = l_managedCursor.getLong(l_colBegin);
          l_end = l_managedCursor.getLong(l_colEnd);
          l_rrule = l_managedCursor.getString(l_colRule);
          Date dateB = new Date(l_begin);
          Date dateE = new Date(l_end);
          SimpleDateFormat dateFormat = new SimpleDateFormat ("E-dd-MMM:HH:mm:ss-yyyy");
          dateFormat.format(dateB);
          dateFormat.format(dateE);
          l_displayText.append(l_title + "\n" + dateB + "\n" + dateE + "\n" + l_rrule + "\n----------------\n");
          ++l_cnt;
      } while (l_managedCursor.moveToNext() );
      calName = calName + l_displayText.toString();
  }
  testText.setText(calName);
Calendar cal=Calendar.getInstance();
校准集(1984,2,13,0,0,0);//13火星1984!!!
long calMilSec=cal.getTimeInMillis();
字符串[]l_投影=新字符串[]{“title”、“dtstart”、“dtend”、“rrule”};
Cursor l_managedCursor=this.managedQuery(l_eventUri,l_projection,“calendar_id=“+5+”和dtstart>”+(calMilSec)+和dtstart