有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用contactpicker仅显示电话号码

我使用Contact picker library来选择多个联系人,但如果一个联系人不包含任何数字,并且如果选择了该联系人,则在编辑文本字段中会显示一些空指针异常。如何删除该消息以及如何删除尾随逗号。下面是我的代码

 try {
            int pos = 0;
            for (Contact contact : contacts) {
                String displayName = contact.getDisplayName();
                result.append(displayName + ",");
                result.setSpan(new BulletSpan(15), pos, pos + displayName.length() + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
                //pos += displayName.length() + 1;
            }
        }
        catch (Exception e) {
            result.append(e.getMessage());
        }

        contactsView.setText(result);

共 (1) 个答案

  1. # 1 楼答案

    请尝试检查此代码

     void getAllContacts() {
        ArrayList<String> nameList = new ArrayList<>();
        ArrayList<String> numberList = new ArrayList<>();
    
        Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
        String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER;
        String[] list = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone._ID, ContactsContract.Contacts._ID};
        Cursor cursor = getContentResolver().query(uri, list, selection, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
    
        cursor.moveToFirst();
        if (cursor.moveToFirst()) {
            do {
                String contactNumber =     cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
    
    
                contactNuber.add(contactNumber);
                contactsName.add(contactName);
                nameList.add(contactName);
                numberList.add(contactNumber);
    
            } while (cursor.moveToNext());
            cursor.close();
            myContacts.put("name", nameList);
            myContacts.put("number", numberList);
    
    
        }
    
    }