2013-04-26 24 views
1

我試圖從Android設備本地日曆中獲取事件。我使用下面的代碼來檢索日曆中的事件。Android從本地設備日曆中檢索事件

cursor cursor = getContentResolver().query(Uri.parse("content://com.android.calendar/calendars"), 
       new String[] { "_id", "displayName" }, null, null, null);  
// Cursor cursor = cr.query(Uri.parse("content://calendar/calendars"), new String[]{ "_id", "name" }, null, null, null); 

while (cursor.moveToNext()) 
{ 
    final String _id = cursor.getString(0); 
    final String displayName = cursor.getString(1); 
    final Boolean selected = !cursor.getString(2).equals("0"); 
    System.out.println("Id: " + _id + " Display Name: " + displayName + " Selected: " + selected); 
} 

但我的應用程序得到墜毀在這一行:

cursor cursor = getContentResolver().query(Uri.parse("content://com.android.calendar/calendars"), 
      new String[] { "_id", "displayName" }, "selected=1", null, null); 

我究竟做錯了在這個上面的代碼。請幫我解決這個問題。我在下面提到了我的崩潰日誌。

android.database.sqlite.SQLiteException: no such column: displayName: , while compiling: SELECT _id, displayName FROM Calendars WHERE (selected=1) 
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:181) 
      at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137) 
    at android.content.ContentProviderProxy.query(ContentProviderNative.java:358) 
    at android.content.ContentResolver.query(ContentResolver.java:312) 
    at com.creagx.VideosActivity$4.onClick(VideosActivity.java:161) 
      at android.view.View.performClick(View.java:3517) 
      at android.view.View$PerformClick.run(View.java:14155) 
    at android.os.Handler.handleCallback(Handler.java:605) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:4624) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 
    at dalvik.system.NativeStart.main(Native Method)** 

回答

3

請使用標準的日曆提供程序,它的參數而不是字符串。你假設表格有一個「顯示名稱」列。

指代正確implementation

相關問題