/* $Id: $ */ package com.oreilly.demo.android.pa.contactviewer; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.provider.BaseColumns; import android.provider.ContactsContract.Contacts; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; /** * * @version $Revision: $ * @author <a href="mailto:bmeike@callmeike.net">Blake Meike</a> */ public class ContactsFragment extends ListFragment { private static final String[] CONTACTS_PROJECTION = new String[] { BaseColumns._ID, Contacts.CONTACT_PRESENCE, Contacts.DISPLAY_NAME }; private static final String CONTACTS_FILTER = "((" + Contacts.DISPLAY_NAME + " NOT NULL)" + " AND (" + Contacts.DISPLAY_NAME + " != ''))"; private static final String CONTACTS_SORT = Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; /** @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle) */ @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle b) { View view = super.onCreateView(inflater, container, b); installListAdapter(getActivity()); return view; } /** * @see android.support.v4.app.ListFragment#onListItemClick(android.widget.ListView, android.view.View, int, long) */ @Override public void onListItemClick(ListView l, View v, int pos, long row){ Cursor cursor = (Cursor) getListAdapter().getItem(pos); Log.d("####", "Got click at: " + pos); String id = cursor.getString( cursor.getColumnIndex(BaseColumns._ID)); String name = cursor.getString( cursor.getColumnIndex(Contacts.DISPLAY_NAME)); Intent intent = new Intent(); intent.setClass(getActivity(), ContactDetailActivity.class); intent.putExtra(ContactDetails.TAG_ID, id); intent.putExtra(ContactDetails.TAG_CONTACT, name); startActivity(intent); } private void installListAdapter(Activity activity) { setListAdapter( new ContactsCursorAdapter( activity, activity.managedQuery( Contacts.CONTENT_URI, CONTACTS_PROJECTION, CONTACTS_FILTER, null, CONTACTS_SORT))); } }