2012-03-31 8 views
6

Ich entwickle eine GPS-Tracking-App in Android. Ich bin fertig mit der Anzeige der Karte n Sachen. Jetzt möchte ich einen Knopf oben machen, der beim Klicken die Kontakte anzeigen würde. Wenn ich dann den Kontakt auswähle, sollte er seinen Standort anzeigen. Bitte helfen Sie mir dabei. Danke.Wie öffne ich Kontakte, wenn ich auf eine Schaltfläche klicke, die in main.xml definiert ist

+0

Ziemlich sicher, dass dies die gleiche Frage: http://stackoverflow.com/questions/4992564/open-device-contacts-list-at-button-click-event – NotACleverMan

+0

dank .. aber wo ich tun Definieren Sie diesen Code. –

+0

http://stackoverflow.com/questions/9766263/getting-contact-number-using-content-provider-in-android/9883740#9883740 Überprüfen Sie dies würde Ihnen helfen –

Antwort

16

Sie ein Ereignis auf Tastenklick einstellen können, indem sie ein OnClickListener auf den Button mit dem folgenden Code setzen und verwenden Intent ContactPicker Aktivität zu nennen:

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

     startActivityForResult(intent, PICK_CONTACT); 

      } 
     }); 

und der Kontakt uri in onActivityResult() Prozessdetails laden von Kontakt.

@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

sollten Sie verwenden startActivityForResult

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

"get contact info from android contact picker" Informationen für mehr sehen.

+0

Wo definiere ich diesen Code ... –

+1

+1 zur Verwendung von 'ContactsContract.Contacts.CONTENT_URI', da 'Contacts.CONTENT_URI' nicht mehr empfohlen wird. – Darcy

0

versuchen diesen Code

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

Verwenden ACTION_DEFAULT statt ACTION_PICK.

Viel Glück.

Verwandte Themen