Hi, with the code above I got an unexpected error, how can I fix it?
Do I have to override de ArrayAdapter?

The objets code are in: 
http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/3/

this is the code:
package org.interfaz;


import java.util.ArrayList;

import org.interfaz.contactsApi.Objects.Address;
import org.interfaz.contactsApi.Objects.Contact;
import org.interfaz.contactsApi.Objects.Email;
import org.interfaz.contactsApi.Objects.IM;
import org.interfaz.contactsApi.Objects.Organization;
import org.interfaz.contactsApi.Objects.Phone;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;


public class start extends Activity {
        private Cursor cur;
        private ContentResolver cr;


        public Cursor getCur() {
                return cur;
        }

        public void setCur(Cursor cur) {
                this.cur = cur;
        }

        public ContentResolver getCr() {
                return cr;
        }

        public void setCr(ContentResolver cr) {
                this.cr = cr;
        }

        public Intent getContactIntent() {
                return(new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI));
        }
  /** Called when the activity is first created. */
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Inflate your view
    setContentView(R.layout.main);

    // Get references to UI widgets
    ListView myListView = (ListView)findViewById(R.id.myListView);
    final EditText myEditText =
(EditText)findViewById(R.id.myEditText);

    // Create the array list of to do items
    final ArrayList<Contact> todoItems =   new ArrayList<Contact>();

    String id;
    if (this.cur.getCount() > 0) {
                        while (cur.moveToNext()) {
                this.cur = this.cr.query(ContactsContract.Contacts.CONTENT_URI,
             null, null, null, null);

                                Contact c = new Contact();
                                id =
cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                                c.setId(id);
        
c.setDisplayName(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
                                if
(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))
> 0) {
                                        c.setPhone(this.getPhoneNumbers(id));
                                }
                                c.setEmail(this.getEmailAddresses(id));
                                c.setNotes(this.getContactNotes(id));
                                c.setAddresses(this.getContactAddresses(id));
                                c.setImAddresses(this.getIM(id));
                                c.setOrganization(this.getContactOrg(id));
                            todoItems.add(c);


                        }}


    // Create the array adapter to bind the array to the listview
    final ArrayAdapter<Contact> aa;
    aa = new ArrayAdapter<Contact>(this,
                                  android.R.layout.simple_list_item_1,
                                  todoItems);
    // Bind the array adapter to the listview.
    myListView.setAdapter(aa);

    myEditText.setOnKeyListener(new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
          if (event.getAction() == KeyEvent.ACTION_DOWN)
            if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER)
            {
             // todoItems.add(0, myEditText.getText().toString());
              aa.notifyDataSetChanged();
              myEditText.setText("");
              return true;
            }
          return false;
        }
      });
  }

        public ArrayList<Phone> getPhoneNumbers(String id) {
                ArrayList<Phone> phones = new ArrayList<Phone>();

                Cursor pCur = this.cr.query(
                                
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                null,
                                
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
                                new String[]{id}, null);
                while (pCur.moveToNext()) {
                        phones.add(new Phone(
 
pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
                                        ,
pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE))
                        ));

                }
                pCur.close();
                return(phones);
        }

        public ArrayList<Email> getEmailAddresses(String id) {
                ArrayList<Email> emails = new ArrayList<Email>();

                Cursor emailCur = this.cr.query(
                                
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                                null,
                                
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
                                new String[]{id}, null);
                while (emailCur.moveToNext()) {
                    // This would allow you get several email addresses
                        Email e = new
Email(emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA))
 
                                        
,emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE))
                                        );
                        emails.add(e);
                }
                emailCur.close();
                return(emails);
        }

        public ArrayList<String> getContactNotes(String id) {
                ArrayList<String> notes = new ArrayList<String>();
                String where = ContactsContract.Data.CONTACT_ID + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ?";
                String[] whereParameters = new String[]{id,
                        
ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE};
                Cursor noteCur = 
this.cr.query(ContactsContract.Data.CONTENT_URI,
null, where, whereParameters, null);
                if (noteCur.moveToFirst()) {
                        String note =
noteCur.getString(noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
                        if (note.length() > 0) {
                                notes.add(note);
                        }
                }
                noteCur.close();
                return(notes);
        }

        public ArrayList<Address> getContactAddresses(String id) {
                ArrayList<Address> addrList = new ArrayList<Address>();

                String where = ContactsContract.Data.CONTACT_ID + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ?";
                String[] whereParameters = new String[]{id,
 
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE};

                Cursor addrCur = 
this.cr.query(ContactsContract.Data.CONTENT_URI,
null, where, whereParameters, null);
                while(addrCur.moveToNext()) {
                        String poBox =
addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
                        String street =
addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
                        String city =
addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
                        String state =
addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
                        String postalCode =
addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
                        String country =
addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
                        String type =
addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
                        Address a = new Address(poBox, street, city, state, 
postalCode,
country, type);
                        addrList.add(a);
                }
                addrCur.close();
                return(addrList);
        }

        public ArrayList<IM> getIM(String id) {
                ArrayList<IM> imList = new ArrayList<IM>();
                String where = ContactsContract.Data.CONTACT_ID + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ?";
                String[] whereParameters = new String[]{id,
                                
ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE};

                Cursor imCur = this.cr.query(ContactsContract.Data.CONTENT_URI,
null, where, whereParameters, null);
                if (imCur.moveToFirst()) {
                        String imName =
imCur.getString(imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA));
                        String imType;
                        imType =
imCur.getString(imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE));
                        if (imName.length() > 0) {
                                IM im = new IM(imName, imType);
                                imList.add(im);
                        }
                }
                imCur.close();
                return(imList);
        }

        public Organization getContactOrg(String id) {
                Organization org = new Organization();
                String where = ContactsContract.Data.CONTACT_ID + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ?";
                String[] whereParameters = new String[]{id,
 
ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE};

                Cursor orgCur = this.cr.query(ContactsContract.Data.CONTENT_URI,
null, where, whereParameters, null);

                if (orgCur.moveToFirst()) {
                        String orgName =
orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA));
                        String title =
orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE));
                        if (orgName.length() > 0) {
                                org.setOrganization(orgName);
                                org.setTitle(title);
                        }
                }
                orgCur.close();
                return(org);
        }



}

-- 
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