0

아래 클래스를 만들었지 만 숫자가 null이됩니다. 동일한 코드가 작업에 잘 작동합니다. 조각의 맥락에서 변화를 만들었습니다. 그 밖의 무엇이 코드에서 문제를 만들고 있습니다.조각의 연락처 번호를 가져 오지 못했습니다.

public class TestFrag extends Fragment { 
    private static final String[] phoneProjection = new String[]{ContactsContract.CommonDataKinds.Phone.DATA}; 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.testfrag, container, false); 

     TextView textView = (TextView) view.findViewById(R.id.clickme); 
     EditText editText = (EditText) view.findViewById(R.id.contact); 

     textView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
       intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); 
       getActivity().startActivityForResult(intent, 1); 

      } 
     }); 


     return view; 
    } 

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

     switch (requestCode) { 

      case (1): 


       //ContentResolver cr = getContentResolver(); 
       Uri contactData = data.getData(); 
       Cursor c = getActivity().getContentResolver().query(contactData, phoneProjection, null, null, null); 
       if (c.moveToFirst()) { 
        String numbers = c.getString(0); 
        Log.e("Hi", numbers); 

       } 
       break; 
     } 
    } 
} 
+0

가능한 복제 (http://stackoverflow.com/questions/6147884/onactivityresult-is-not-being-called-in-를 확인하실 수 있습니다 파편) –

답변

0

당신이 getActivity().startActivityForResult(intent, 1);를 호출이 응답은 당신이 조각의 방법입니다 startActivityForResult(intent, 1);를 호출해야하고 조각 onActivityResult()를 호출 활동의 onActivityResult() 방법으로 처리 될 것입니다.

당신이 [onActivityResult를이 조각에서 호출하지 않을]이 link 너무