Android studio 如何在信息列表中显示联系人姓名或联系人的姓名

Android studio 如何在信息列表中显示联系人姓名或联系人的姓名,android-studio,Android Studio,如果循环中给出了以下数字,如何在Listview中显示这些数字的名称。 void FetchAllMessages(){ msgList=newarraylist() 我的安卓系统没有显示,它继续崩溃。 非常感谢您的帮助。您似乎没有编写“无联系人检查”代码。请尝试此代码 ContentResolver cr = cntx.getApplicationContext().getContentResolver(); //Query to get contact name Cursor

如果循环中给出了以下数字,如何在Listview中显示这些数字的名称。 void FetchAllMessages(){ msgList=newarraylist()

我的安卓系统没有显示,它继续崩溃。
非常感谢您的帮助。

您似乎没有编写“无联系人检查”代码。请尝试此代码

ContentResolver cr = cntx.getApplicationContext().getContentResolver();
    //Query to get contact name
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
    // If data data found in contacts
    ArrayList<String> msgList = new ArrayList<String>();
    if (cur.getCount() > 0) {
    int k = 0;
    String name = "";
    while (cur.moveToNext()) {
        String id = cur
            .getString(cur
                .getColumnIndex(ContactsContract.Contacts._ID));
        name = cur
            .getString(cur
                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

        //Check contact have phone number
        if (Integer
            .parseInt(cur
                .getString(cur
                    .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
        //Create query to get phone number by contact id
        Cursor pCur = cr
            .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                    + " = ?",
                new String[]{id},
                null);
        int j = 0;
        while (pCur
            .moveToNext()) {
            // Sometimes get multiple data
            if (j == 0) {
            // Get Phone number
            phoneNumber = "" + pCur.getString(pCur
                .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

            if (phoneNumber.startsWith("+91")) {
                phoneNumber = phoneNumber.substring(3, phoneNumber.length());
            }
            phoneNumber = phoneNumber.replaceAll("\\s", "");

            if (phoneNumber.length() == 10) {
               // Add contacts names to arrayList
                msgList.add(name.toString());

            }
            j++;
            k++;
            }
        }  // End while loop

        pCur.close();
        } // End if

    }  // End while loop

    } // End Cursor value check
    cur.close();
ContentResolver cr=cntx.getApplicationContext().getContentResolver();
//查询以获取联系人姓名
Cursor cur=cr.query(Contacts contract.Contacts.CONTENT\u URI,null,null,null);
//如果在联系人中找到数据
ArrayList msgList=新的ArrayList();
如果(cur.getCount()>0){
int k=0;
字符串名称=”;
while(cur.moveToNext()){
字符串id=cur
.getString(cur)
.getColumnIndex(Contacts contract.Contacts._ID));
name=cur
.getString(cur)
.getColumnIndex(Contacts contract.Contacts.DISPLAY_NAME));
//检查联系人是否有电话号码
if(整数
.parseInt(cur)
.getString(cur)
.getColumnIndex(Contacts contract.Contacts.HAS_PHONE_NUMBER))>0){
//创建查询以按联系人id获取电话号码
光标pCur=cr
.query(contacts contract.commondatatypes.Phone.CONTENT\u URI、,
无效的
Contacts contract.CommonDataTypes.Phone.CONTACT\u ID
+ " = ?",
新字符串[]{id},
无效);
int j=0;
while(pCur
.moveToNext()){
//有时会获取多个数据
如果(j==0){
//获取电话号码
phoneNumber=“”+pCur.getString(pCur
.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
if(phoneNumber.startsWith(“+91”)){
phoneNumber=phoneNumber.substring(3,phoneNumber.length());
}
phoneNumber=phoneNumber.replaceAll(“\\s”和“);
if(phoneNumber.length()=10){
//将联系人姓名添加到arrayList
msgList.add(name.toString());
}
j++;
k++;
}
}//在循环结束时结束
pCur.close();
}//如果结束,则结束
}//在循环结束时结束
}//结束游标值检查
cur.close();
ContentResolver cr = cntx.getApplicationContext().getContentResolver();
    //Query to get contact name
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
    // If data data found in contacts
    ArrayList<String> msgList = new ArrayList<String>();
    if (cur.getCount() > 0) {
    int k = 0;
    String name = "";
    while (cur.moveToNext()) {
        String id = cur
            .getString(cur
                .getColumnIndex(ContactsContract.Contacts._ID));
        name = cur
            .getString(cur
                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

        //Check contact have phone number
        if (Integer
            .parseInt(cur
                .getString(cur
                    .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
        //Create query to get phone number by contact id
        Cursor pCur = cr
            .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                    + " = ?",
                new String[]{id},
                null);
        int j = 0;
        while (pCur
            .moveToNext()) {
            // Sometimes get multiple data
            if (j == 0) {
            // Get Phone number
            phoneNumber = "" + pCur.getString(pCur
                .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

            if (phoneNumber.startsWith("+91")) {
                phoneNumber = phoneNumber.substring(3, phoneNumber.length());
            }
            phoneNumber = phoneNumber.replaceAll("\\s", "");

            if (phoneNumber.length() == 10) {
               // Add contacts names to arrayList
                msgList.add(name.toString());

            }
            j++;
            k++;
            }
        }  // End while loop

        pCur.close();
        } // End if

    }  // End while loop

    } // End Cursor value check
    cur.close();