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