package com.google.mcommerce.sample.android.chapter04.adapterView; import android.app.ListActivity; import android.content.ContentUris; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract.Contacts; import android.util.Log; import android.view.View; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import com.google.mcommerce.sample.android.R; public class ListViewActivity4 extends ListActivity { private static final String TAG = "ListViewActivity4"; private SimpleCursorAdapter adapter = null; private ListView lv = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.c04_list); lv = getListView(); String[] projection = new String[] { Contacts._ID, Contacts.DISPLAY_NAME }; Cursor c = managedQuery(Contacts.CONTENT_URI, projection, null, null, Contacts.DISPLAY_NAME); String[] cols = new String[] { Contacts.DISPLAY_NAME }; int[] views = new int[] { android.R.id.text1 }; adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_multiple_choice, c, cols, views); this.setListAdapter(adapter); lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); } public void doClick(View view) { if (!adapter.hasStableIds()) { Log.v(TAG, "Data is not stable"); return; } long[] viewItems = lv.getCheckedItemIds(); for (int i = 0; i < viewItems.length; i++) { Uri selectedPerson = ContentUris.withAppendedId( Contacts.CONTENT_URI, viewItems[i]); Log.v(TAG, selectedPerson.toString() + " is checked."); } } }