为什么android studio需要CalendarContract.Calendars而不是Calendar?

时间:2016-07-10 12:03:30

标签: android calendar

我正在尝试使用我的应用程序读取和写入日历。所以我使用了android developer guide

中的代码

我已经复制了这个:

// Run query
Cursor cur = null;
ContentResolver cr = getContentResolver();
Uri uri = Calendars.CONTENT_URI;   
String selection = "((" + Calendars.ACCOUNT_NAME + " = ?) AND (" 
                    + Calendars.ACCOUNT_TYPE + " = ?) AND ("
                    + Calendars.OWNER_ACCOUNT + " = ?))";
String[] selectionArgs = new String[] {"sampleuser@gmail.com", "com.google",
    "sampleuser@gmail.com"}; 
// Submit the query and get a Cursor object back. 
cur = cr.query(uri, EVENT_PROJECTION, selection, selectionArgs, null);

但是我得到的错误无法解析符号日历。 android studio提供的解决方案是将Calendars更改为CalendarContract.Calendars

我只是好奇有什么区别?可能为什么开发人员指南存在缺陷?

1 个答案:

答案 0 :(得分:5)

唯一的区别是import声明。

import android.provider.CalendarContract.Calendars;
// Use Calendars
Calendars.ACCOUNT_NAME


import android.provider.CalendarContract;
// Use CalendarContract.Calendars 
CalendarContract.Calendars.ACCOUNT_NAME