2016-06-16 1 views
1

J'ai une application Android Dialer dans lequel je veux ouvrir des contacts. J'ai pris le code de Stack Overflow lui-même. Mais il existe un argument dans la fonction startActivityForResult, PICK_CONTACT. Il montre une erreur.Qu'est-ce qu'un argument PICK_CONTACT dans la fonction startActivityForResult?

else if(id == R.id.action_contacts){ 
     Intent i = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); 
     startActivityForResult(i, PICK_CONTACT); 

    } 

Et sur la fonction ActivityResult est comme ce

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

S'il vous plaît aider comment corriger cette erreur.

Répondre

1

C'est un code de requête. Lorsque vous appelez startActivityForResult, vous devez transmettre un argument qui identifie votre demande. Cette même valeur entière est utilisée plus tard dans onActivityResult pour vérifier quelle requête vous revenez.

Vous devez déclarer ceci, et tout autre code de requête comme celui-ci en haut de votre activité.

static final int PICK_CONTACT = 1; // requestCode for Contact Picker intent 

Plus de détails peuvent être trouvés ici: https://developer.android.com/training/basics/intents/result.html