在将事件添加到Android日历之前检查事件是否存在

TMS*_*TMS 2 events android calendar querying android-4.0-ice-cream-sandwich

我的应用程序中有一个事件列表.侧面的按钮允许用户将事件日期和时间添加到他/她的日历中.我使用日历意图将用户重定向到相应日期和时间的android日历.现在用户将事件添加到他的日历后,我想禁用"添加事件"按钮,该按钮对应于他/她已经添加的事件(因此用户避免再次添加相同的事件).我怎样才能做到这一点?我已经完成了针对Android 4.0的新日历API,但我无法实现我想要的.

基本上我想要的是避免在用户日历中对同一事件重复输入.

任何帮助,将不胜感激.

Wol*_*yer 7

如果存在此事件的实例,则应测试.请参阅Android的CalendarContract.Instances类文档.

特别是第二种查询方法在这种情况下应该是有用的.

这个例子是一些代码,我在我的博客文章中发布了有关CalendarContract提供程序的内容 - 根据您的需求略有改动:

long begin = // starting time in milliseconds
long end = // ending time in milliseconds
String[] proj = 
      new String[]{
            Instances._ID, 
            Instances.BEGIN, 
            Instances.END, 
            Instances.EVENT_ID};
Cursor cursor = 
      Instances.query(getContentResolver(), proj, begin, end, "\"Your event title\"");
if (cursor.getCount() > 0) {
   // deal with conflict
}
Run Code Online (Sandbox Code Playgroud)

请注意:自纪元以来,时间总是以UTC毫秒为单位.因此,您可能需要根据用户的时区进行调整.

最后一个参数应包含您添加到日历中的事件的标题.保留报价 - 否则Android会查找"您的"或"活动"或"标题"!

并且不要忘记包含必要的权限.