Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓:我有一个联系人名单,如何获得他们相应的电子邮件和电话号码?_Java_Android_Listview_Android Listview - Fatal编程技术网

Java 安卓:我有一个联系人名单,如何获得他们相应的电子邮件和电话号码?

Java 安卓:我有一个联系人名单,如何获得他们相应的电子邮件和电话号码?,java,android,listview,android-listview,Java,Android,Listview,Android Listview,我有一个活动,它有一个列表视图,可以显示启用了多选功能的所有联系人。我还有一个过滤器来过滤显示结果 在解决这个问题3天后,我终于可以生成一个由用户选择的所有显示名称的列表 我现在的问题是如何获取列表中每个显示名称对应的电子邮件和电话号码 更新: 我找到了解决办法 public String getNumber(String name,Context context){ String number=""; Uri uri = ContactsContract.Commo

我有一个活动,它有一个列表视图,可以显示启用了多选功能的所有联系人。我还有一个过滤器来过滤显示结果

在解决这个问题3天后,我终于可以生成一个由用户选择的所有显示名称的列表

我现在的问题是如何获取列表中每个显示名称对应的电子邮件和电话号码

更新: 我找到了解决办法

    public String getNumber(String name,Context context){

    String number="";

    Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
    String[] projection    = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.Phone.NUMBER};

    Cursor people = context.getContentResolver().query(uri, projection, null, null, null);

    int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
    int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);

    people.moveToFirst();
    do {
        String Name   = people.getString(indexName);
        String Number = people.getString(indexNumber);
        if(Name.equalsIgnoreCase(name)){return Number.replace("-", "");}
        // Do work...
    } while (people.moveToNext());


    if(!number.equalsIgnoreCase("")){return number.replace("-", "");}
    else return number;
}

public String getEmail(String name,Context context){

    String email="";

    Uri uri = ContactsContract.CommonDataKinds.Email.CONTENT_URI;
    String[] projection    = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.Email.DATA};

    Cursor people = context.getContentResolver().query(uri, projection, null, null, null);

    int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
    int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA);

    people.moveToFirst();
    do {
        String Name   = people.getString(indexName);
        String mail = people.getString(indexNumber);
        if(Name.equalsIgnoreCase(name)){return mail;}
        // Do work...
    } while (people.moveToNext());


    if(!email.equalsIgnoreCase("")){return email;}
    else return email;
}
从那里得到的:

“我现在的问题是如何获取列表中每个显示姓名的相应电子邮件和电话号码?”
这些信息存储在哪里?我的listview在电话簿中有所有显示姓名。我列出了所有选定联系人姓名的联系人姓名列表。我想把他们相应的电子邮件和电话号码存储在电话簿中。你可以使用ArrayAdapter来实现这一点。这样,您就可以修改和个性化listview和listitems。这里有一个很好的教程