获得从联系人列表Android的唯一的电子邮件地址 [英] Get only email address from contact list Android

查看:93
本文介绍了获得从联系人列表Android的唯一的电子邮件地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想只显示那些联系人姓名的电子邮件地址是present。否则,该联系人名称不应该显示在列表中。我怎样才能做到这一点?任何人都可以请帮我吗?

解决方案

 公开的ArrayList<字符串> getNameEmailDetails(){
        ArrayList的<字符串>名称=新的ArrayList<字符串>();
        ContentResolver的CR = getContentResolver();
        光标CUR = cr.query(ContactsContract.Contacts.CONTENT_URI,NULL,NULL,NULL,NULL);
        如果(cur.getCount()大于0){
            而(cur.moveToNext()){
                字符串ID = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                光标CUR1 = cr.query(
                        ContactsContract.CommonDataKinds.Email.CONTENT_URI,空,
                        ContactsContract.CommonDataKinds.Email.CONTACT_ID +=?,
                                新的String [] {ID},NULL);
                而(cur1.moveToNext()){
                    //获取联系人姓名
                    字符串名称= cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                    Log.e(姓名:,姓名);
                    字符串email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                    Log.e(电子邮件,电子邮件);
                    如果(电子邮件!= NULL){
                        names.add(名称);
                    }
                }
                cur1.close();
            }
        }
        返回名称;
    }
 

以上方法返回的名字里面有电子邮件ID的ArrayList

I want to display only those contact names whose email address is present. Otherwise that contact name should not be displayed in List. How can I do this? Can anybody please help me?

解决方案

public ArrayList<String> getNameEmailDetails(){
        ArrayList<String> names = new ArrayList<String>();
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
        if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                Cursor cur1 = cr.query( 
                        ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
                        ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
                                new String[]{id}, null); 
                while (cur1.moveToNext()) { 
                    //to get the contact names
                    String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                    Log.e("Name :", name);
                    String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                    Log.e("Email", email);
                    if(email!=null){
                        names.add(name);
                    }
                } 
                cur1.close();
            }
        }
        return names;
    }

the above method return an arraylist of names which has email id.

这篇关于获得从联系人列表Android的唯一的电子邮件地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆