2016-06-09 6 views
0

질문이 하나 있습니다. 신청서에 전화 번호부를 열고 선택한 사람의 이름과 전화 번호를 찾으십시오. 나는 전화 번호부를 열고이 코드 조각에서
전화 번호부 안의 멀티 코스

public void showContactsChooser(){ 
     Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
     startActivityForResult(intent, 1001); 
    } 

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

     switch(reqCode){ 
      case (1001): 
       if (resultCode == Activity.RESULT_OK){ 
        ContentResolver cr = getContentResolver(); 
        Uri contactData = data.getData(); 
        Cursor c = cr.query(contactData, null, null, null, null); 
        String phone = ""; 
        if (c.moveToFirst()){ 
         String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); 
         Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, 
           "DISPLAY_NAME = '" + name + "'", null, null); 
         if (cursor.moveToFirst()) { 
          String contactId = 
            cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
          // 
          // Get all phone numbers. 
          // 
          Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); 
          while (phones.moveToNext()) { 
           phone = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
           int type = phones.getInt(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); 
           switch (type) { 
            case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE: 
             break; 
           } 
          } 
          phones.close(); 
         Toast.makeText(getApplicationContext(), name + " " + phone, Toast.LENGTH_SHORT).show(); 
         Log.d("PICK", "Contact " + name + " " + phone); 
        } 
       } 
      } 
     } 
    } 

를하고 연락처 이름을 클릭하고 전화 번호를 얻을 때, 다시 이전 Activiti로 이동 여기에 내가 코드입니다. 하지만 한 사람 만 선택할 수 있습니다. 그리고 몇 가지를 선택해야합니다. 내 질문 :
전화 번호부에서 몇 명을 선택한 다음 응용 프로그램에 전달할 수 있습니까? 어떻게해야합니까?

답변

0

내가 아는 한 연락처 책에서 여러 연락처를 선택하는 데 필요한 기본 제공 방법이 없습니다.

할 수있는 일은 연락처를 가져 와서 체크 박스가있는 맞춤 어댑터가있는 RecyclerView 또는 ListView에 표시하는 것입니다. 그런 다음 선택한 데이터를 다시 활동으로 되돌립니다.

+0

예, 앱이 연락처를 가져 와서 목록에 추가합니다. 그러나 연락처에 둘 이상의 번호가있는 경우 중복되어 있으며 연락처 아래에있는 응용 프로그램 서버에 친구가 있기 때문에 많은 연락처가 나에게 좋지 않은 경우 – metalink