2012-03-31 8 views
6

Sto sviluppando un'app di tracciamento gps in Android. Ho finito con la visualizzazione della mappa n roba. Ora voglio fare un pulsante in cima al quale, quando si fa clic, si visualizzano i contatti, quindi quando seleziono il contatto dovrebbe mostrarmi la sua posizione. Per favore aiutatemi con questo. Grazie.come faccio ad aprire i contatti quando clicco su un pulsante definito in main.xml

+0

Abbastanza sicuro che questa è la stessa domanda: http://stackoverflow.com/questions/4992564/open-device-contacts-list-at-button-click-event – NotACleverMan

+0

grazie .. ma dove posso definisci quel codice –

+0

http://stackoverflow.com/questions/9766263/getting-contact-number-using-content-provider-in-android/9883740#9883740 controlla questo ti aiuterà –

risposta

16

È possibile impostare un evento sul pulsante click impostando un OnClickListener sul pulsante con il seguente codice, e utilizzare l'intenzione di chiamare l'attività ContactPicker:

button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent= new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); 

     startActivityForResult(intent, PICK_CONTACT); 

      } 
     }); 

e onActivityResult() processo l'uri contatto per caricare i dettagli di contatto.

@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 

    switch (reqCode) { 
    case (PICK_CONTACT) : 
     if (resultCode == Activity.RESULT_OK) { 
     Uri contactData = data.getData(); 
     Cursor c = managedQuery(contactData, null, null, null, null); 
     if (c.moveToFirst()) { 
      String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      // TODO Fetch other Contact details as you want to use 

     } 
     } 
     break; 
    } 
} 
11

Si dovrebbe usare startActivityForResult

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, 1); 

Vedi "get contact info from android contact picker" per ulteriori informazioni.

+0

dove definisco questo codice ... –

+1

+1 per l'utilizzo di 'ContactsContract.Contacts.CONTENT_URI' perché' Contacts.CONTENT_URI' è deprecato. – Darcy

0

provare questo codice

Intent intent = new Intent(Intent.ACTION_DEFAULT, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, 1); 

Uso ACTION_DEFAULT invece di ACTION_PICK.

Buona fortuna.

Problemi correlati