2016-12-18 2 views
0

3 개의 TextView 필드를 만들고 각 TextView 필드에 선택한 연락처 번호를 표시하고 싶습니다. 1 개의 TextView 만 성공했지만 여러 연락처를 처리 할 생각이 없습니다.Android 연락처 선택 도구 [여러 hp 번호 및 편집 방법에 표시하는 방법]

아래의 그림은 어떻게 하나의 연락처에 대해 hp 번호를 표시하지만 여러 전화 번호를 표시합니까? 예를 들어, TextView1 디스플레이 123, TextView2 디스플레이 456 등등.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 

    if(requestCode == RQS_PICK_CONTACT){ 
     if(resultCode == RESULT_OK){ 
      Uri contactData = data.getData(); 
      Cursor cursor = managedQuery(contactData, null, null, null, null); 
      cursor.moveToFirst(); 

      String number =  cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

      //contactName.setText(name); 
      contactNumber.setText(number); 
      //contactEmail.setText(email); 
     } 
    } 
} 
+0

당신은 3 개의'TextView'와 3 개의'Button's (각'TextView' 옆에)를 원하십니까? 아니면 모든 3 개의 TextView'에 대해 하나의'Button'을 원하십니까? – marmor

+0

버튼이 3 개인 TextViews – KidPPAP

답변

0

당신은 단순히 코드를 세 번 실행하고 각각 사용하는 다른 TextView ID, Button ID 및 RequestCode합니다.

이 같은 도우미 메서드를 사용할 수 있습니다

private void setupViews(long textViewId, long buttonId, final int requestCode) { 
    TextView tv = (TextView) findViewById(textViewId); 
    Button button = (Button) findViewById(buttonId); 
    button.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
      intent.setType(Phone.CONTENT_ITEM_TYPE); 
      startActivityForResult(intent, requestCode); 
     } 
    }); 
} 

TextView을 위해 3 번을 전화 - Button 쌍 :

setupViews(R.id.my_first_text_view, R.id.my_first_button, 1000); 
setupViews(R.id.my_second_text_view, R.id.my_second_button, 2000); 
setupViews(R.id.my_third_text_view, R.id.my_third_button, 3000); 

는 그 다음 requestCodeActivityResult을 처리 (이동하여 기존의 업데이트 코드를 updateTextView이라는 메서드에 추가) :

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == 1000) { 
      updateTextView(R.id.my_first_text_view); 
     } else if (requestCode == 2000) { 
      updateTextView(R.id.my_second_text_view); 
     } else if (requestCode == 3000) { 
      updateTextView(R.id.my_third_text_view); 
     } 
    } 
}