Mega Code Archive

 
Categories / Android / UI
 

Allows the activity to manage the Cursors lifecyle based on the activitys lifecycle---

package app.test; import android.app.ListActivity; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.util.Log; import android.widget.SimpleCursorAdapter; public class Test extends ListActivity {     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         //Uri allContacts = Uri.parse("content://contacts/people");         //Uri allContacts = Uri.parse("content://contacts/people/1");                 Uri allContacts = ContactsContract.Contacts.CONTENT_URI;         //Uri allContacts = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, 1);         Cursor c = getContentResolver().query(allContacts, null, null, null, null);         startManagingCursor(c);          String[] columns = new String[] {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME,};         int[] views = new int[] {R.id.contactName, R.id.contactID};                  SimpleCursorAdapter adapter =              new SimpleCursorAdapter(this, R.layout.main, c, columns, views);         this.setListAdapter(adapter);                  PrintContacts(c);       }              private void PrintContacts(Cursor c)     {         if (c.moveToFirst()) {             do{               String contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));               String contactDisplayName = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));                   Log.v("Content Providers", contactID + ", " + contactDisplayName);                 int hasPhone = c.getInt(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));                 if (hasPhone == 1) {                     Cursor phoneCursor = getContentResolver().query(                       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactID, null, null);                                          while (phoneCursor.moveToNext()) {                       Log.v("Content Providers",                             phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));                                       }                      phoneCursor.close();                 }             } while (c.moveToNext());         }     } } //main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     >     <ListView          android:id="@+id/android:list"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:layout_weight="1"          android:stackFromBottom="false"          android:transcriptMode="normal"          />      <TextView            android:id="@+id/contactName"         android:textStyle="bold"            android:layout_width="wrap_content"          android:layout_height="wrap_content"          />      <TextView            android:id="@+id/contactID"          android:layout_width="fill_parent"          android:layout_height="wrap_content"         />    </LinearLayout>