I'm developing an application in which I need to display user a list of contacts and their email addresses so that user can choose one of them.
I've got some help from Internet and I'm able to display a list of contacts and their number by the following code:
Using java Syntax Highlighting
- public class ShowContacts extends ExpandableListActivity implements OnChildClickListener {
- private int mGroupIdColumnIndex;
- private String mPhoneNumberProjection[] = new String[] {
- People.Phones._ID, People.NUMBER // CHANGE HERE
- };
- private ExpandableListAdapter mAdapter;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // Query for people
- Cursor groupCursor = managedQuery(People.CONTENT_URI,
- new String[] {People._ID, People.NAME}, null, null, null);
- // Cache the ID column index
- mGroupIdColumnIndex = groupCursor.getColumnIndexOrThrow(People._ID);
- // Set up our adapter
- mAdapter = new MyExpandableListAdapter(groupCursor,
- this,
- android.R.layout.simple_expandable_list_item_1,
- android.R.layout.simple_expandable_list_item_1,
- new String[] {People.NAME}, // Name for group layouts
- new int[] {android.R.id.text1},
- new String[] {People.NUMBER}, // AND CHANGE HERE
- new int[] {android.R.id.text1});
- setListAdapter(mAdapter);
- }
- public class MyExpandableListAdapter extends SimpleCursorTreeAdapter {
- public MyExpandableListAdapter(Cursor cursor, Context context, int groupLayout,
- int childLayout, String[] groupFrom, int[] groupTo, String[] childrenFrom,
- int[] childrenTo) {
- super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childrenFrom,
- childrenTo);
- }
- @Override
- protected Cursor getChildrenCursor(Cursor groupCursor) {
- // Given the group, we return a cursor for all the children within that group
- // Return a cursor that points to this contact's phone numbers
- Uri.Builder builder = People.CONTENT_URI.buildUpon();
- ContentUris.appendId(builder, groupCursor.getLong(mGroupIdColumnIndex));
- builder.appendEncodedPath(People.Phones.CONTENT_DIRECTORY);
- Uri phoneNumbersUri = builder.build();
- return managedQuery(phoneNumbersUri, mPhoneNumberProjection, null, null, null);
- }
- }
- @Override
- public boolean onChildClick(android.widget.ExpandableListView parent,
- View v, int groupPosition, int childPosition, long id) {
- AlertDialog dialog = new AlertDialog.Builder(ShowContacts.this)
- .setMessage(((TextView) v).getText().toString())
- .setPositiveButton("OK", null).create();
- dialog.show();
- return true;
- }
- }
Parsed in 0.040 seconds, using GeSHi 1.0.8.4
What I need now is how to replace numbers by email addresses. What I need to change is People.NUMBER at a couple of places but I'm not able to find any replacement. There is a field called People.PRIMARY_EMAIL_ID but that returns the ID of the email rather than the actuall email.
Kindly guide me what am I missing.
Big thanks in advance!!!

