Hello all,

I am new to android and java programming. I am trying to display a
list with People and their contact numbers as following:

Name

TYPE
Number

I am using ExpandableListActivity to accomplish that. Everything is
working good when i am using the integer value if People.TYPE..but if
i am trying to convert that to a string representation i get an
unhandled exception. Can someone tell me what i am doing wrong?

My Code:

------------------------------------------------------------------------------------------------------------------------------------------------------------
package org.ListExpandable;

import android.app.ExpandableListActivity;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.widget.ExpandableListAdapter;
import android.widget.SimpleCursorTreeAdapter;

public class ListExpandable extends ExpandableListActivity {

          private int mGroupIdColumnIndex;

         private String mPhoneNumberProjection[] = new String[] {
                 People.Phones._ID, People.Phones.NUMBER
         };

         private ExpandableListAdapter mAdapter;


    /** Called when the activity is first created. */
    @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_2,
                new String[] {People.NAME}, // Name for group layouts
                new int[] {android.R.id.text1},
                new String[] { NumberTypeToString(People.TYPE) ,
People.NUMBER}, // Number for child layouts
                new int[] {android.R.id.text1,android.R.id.text2});
        setListAdapter(mAdapter);

    }


    private String NumberTypeToString(String underlying_type){
     String retValue="Other";

     int converted_type=Integer.parseInt(underlying_type);

     switch (converted_type)
     {
     case People.TYPE_HOME: retValue="Home"; break;
     case People.TYPE_MOBILE: retValue="Mobile"; break;
     case People.TYPE_WORK: retValue="Work"; break;
     case People.TYPE_OTHER: retValue="Other"; break;
     }
     return retValue;
    }


    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();

            // The returned Cursor MUST be managed by us, so we use
Activity's helper
            // functionality to manage it for us.
            //return managedQuery(phoneNumbersUri,
mPhoneNumberProjection, null, null, null);
            return managedQuery(phoneNumbersUri, null, null, null,
null);
        }

    }

}
------------------------------------------------------------------------------------------------------------------------------------------------------

Thank you for your help
Stefan

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to