2012-06-17 3 views
0

기존의 모든 캘린더를 읽으려고합니다.기존의 모든 캘린더를 HashMap <String, String>으로 읽어들입니다.

모든 제목, 계정이 포함 된 HashMap이 필요합니다. 누군가 제발 나를 도와 줄 수 있니? 이것은 내 시도입니다. LogCat에서 모든 캘린더를 볼 수 있습니다.

public HashMap<String, String> readCalendar(Context context) { 

    String[] EVENT_PROJECTION = new String[] {     
     Calendars.ACCOUNT_NAME,     
     Calendars.CALENDAR_DISPLAY_NAME         
    }; 

    Cursor managedCursor = null; 
    HashMap<String, String> calendars = new HashMap<String, String>(); 
     Uri calendarUri = CalendarContract.Calendars.CONTENT_URI; 
     ContentResolver cr = context.getContentResolver(); 
     managedCursor = cr.query(calendarUri, EVENT_PROJECTION, null, null, null); 

     if (managedCursor != null && managedCursor.moveToFirst()) { 


      do { 
        // here I see all accounts and names in the LogCat 

       for (int i = 0; i < managedCursor.getColumnCount(); i++) { 
        Log.i(LOG_TAG, managedCursor.getColumnName(i) + "=" 
          + managedCursor.getString(i)); 

       } 

       String title = managedCursor.xxxxxx; // I don't know how 
       String account = managedCursor.xxxxx; // I don't know how 


       calendars.put(title, account); 

      } while (managedCursor.moveToNext()); 

      managedCursor.close(); 
     } else { 
      Log.i(LOG_TAG, "No Calendars"); 
       } 
return calendars; 
    } 

답변

1

캘린더 테이블에서 열 이름을 찾고있는 것으로 보입니다. 그들은 described in the API (일정 열 섹션)입니다. 전화 번호는 다음과 같이 표시 될 수 있습니다 (원하는 열에 해당하는 경우).

String title = managedCursor.getString(managedCursor.getColumnIndex(
    CalendarContract.Calendars.NAME)); 
String account = managedCursor.getString(managedCursor.getColumnIndex(
    CalendarContract.Calendars.ACCOUNT_NAME)); 
+0

정확히 무엇을 찾고 계셨습니까? – user1390816

관련 문제