簡體   English   中英

Android中的電話簿中的多選

[英]multichose in phonebook 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。 但是我只能選一個人。 我需要選擇一些。 我的問題:
我可以在電話簿中選擇幾個人,然后將其傳遞給應用程序。 以及如何做?

據我所知,沒有任何內置方法可以從通訊錄中選擇多個聯系人!

您可以做的是,獲取聯系人並將其顯示在具有自定義適配器和復選框的RecyclerViewListView中。 然后將這些選定的數據返回給您的活動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM