2016-06-16 3 views
1

연락처를 여는 Android Dialer App이 있습니다. Stack Overflow 자체에서 코드를 가져 왔습니다. 그러나 startActivityForResult 함수에 인수가 있습니다 (PICK_CONTACT). 오류가 표시됩니다.startActivityForResult 함수에서 PICK_CONTACT 인수는 무엇입니까?

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

    } 

그리고 ActivityResult 기능에이 오류를 해결하는 방법을 도와주세요이

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

같다.

답변

1

요청 코드입니다. startActivityForResult으로 전화 할 때는 요청을 식별하는 인수를 전달해야합니다. 이 동일한 정수 값은 나중에 onActivityResult에서 어떤 요청을 반환하는지 확인하는 데 사용됩니다.

이 항목과 다른 요청 코드는 활동 상단에 선언해야합니다.

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

자세한 내용은 여기에서 찾을 수 있습니다 : https://developer.android.com/training/basics/intents/result.html