package com.google.mcommerce.sample.android.chapter04.adapterView;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import com.google.mcommerce.sample.android.R;
public class ListViewActivity3 extends ListActivity {
private static final String TAG = "ListViewActivity3";
private ListView lv = null;
private Cursor cursor = null;
private int idCol = -1;
private int nameCol = -1;
private int timesContactedCol = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c04_list);
lv = getListView();
cursor = managedQuery(Contacts.CONTENT_URI, null, null, null,
Contacts.DISPLAY_NAME + " ASC");
String[] cols = new String[] { Contacts.DISPLAY_NAME };
idCol = cursor.getColumnIndex(Contacts._ID);
nameCol = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
timesContactedCol = cursor.getColumnIndex(Contacts.TIMES_CONTACTED);
int[] views = new int[] { android.R.id.text1 };
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_multiple_choice, cursor,
cols, views);
this.setListAdapter(adapter);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
public void doClick(View view) {
int count = lv.getCount();
SparseBooleanArray viewItems = lv.getCheckedItemPositions();
for (int i = 0; i < count; i++) {
if (viewItems.get(i)) {
// CursorWrapper cw = (CursorWrapper) lv.getItemAtPosition(i);
cursor.moveToPosition(i);
long id = cursor.getLong(idCol);
String name = cursor.getString(nameCol);
int timesContacted = cursor.getInt(timesContactedCol);
Log.v(TAG, name + " is checked. Times contacted = "
+ timesContacted + ". Position = " + i + ". Id = " + id);
}
}
}
}