2016-06-09 70 views
0

我有一個問題。在我的申請中,我打開電話簿並提取您選擇的人員的姓名和電話號碼。下面是我做的代碼:
multichose電話簿android

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

據我所知,沒有任何內置的方式從通訊簿中選擇多個聯繫人!

您可以做的是取回聯繫人並將其顯示在RecyclerViewListView中,並帶有複選框的自定義適配器。然後將這些選定的數據返回到您的活動中。

+0

是的,我這樣做,應用程序拉聯繫人並將其添加到列表中。但是,如果聯繫人有多個號碼,它會被複制,並且如果很多聯繫人對我不利,因爲我在應用程序服務器中有朋友,這些朋友在聯繫人下 – metalink