Hi, I want to query a content provider, e.g. contacts. (API 2.x). I create a cursor like this
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); Now I have an internal table represented by this cursor and I can browse through this table with the aid of that cursor. In order to know what data I have I need to know the columns of my table, I assume in my case these http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html are the columns I have available and I can pick from. So lets try this while(cursor.moveToNext()) { String data = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.XXXXXXXX)); Log.e("myTag", data); } cursor.close(); I would assume that where I have typed XXXXXXXX that I can enter any column from the link above, so for example String data = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME_PRIMARY)); Eclipse auto complete does not offer me a DISPLAY_NAME_PRIMARY but a DISPLAY_NAME. Using DISPLAY_NAME seems to work. So the question is, am I just lucky to get the data and in fact I haven't understood something? Or is that a plain bug in the documentation? The biggest problem is that it seems to be worse for other providers, e.g. http://developer.android.com/reference/android/provider/ContactsContract.Groups.html , this Cursor groupC = getContentResolver().query(ContactsContract.Groups.CONTENT_URI, null, null, null, null); while(groupC.moveToNext()) { String group = groupC.getString(cursor.getColumnIndex(ContactsContract.Groups._ID)); Log.e("myTag", group); // } groupC.close(); works fine. It prints number 1....6 hence I assume I have 6 entries in my table (though I only have 5 contacts groups in my contact application). But this: Cursor groupC = getContentResolver().query(ContactsContract.Groups.CONTENT_URI, null, null, null, null); while(groupC.moveToNext()) { String group = groupC.getString(cursor.getColumnIndex(ContactsContract.Groups.TITLE)); Log.e("myTag", group); // } groupC.close(); Leads to a crash "Caused by: java.lang.IllegalStateException: get field slot from row 0 col -1 failed". Anyone who can shed some light on this problem? Thanks. A. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

