java - 从android中的电话簿获取联系人

标签 java android arraylist

我有两个数组列表 NumINdb(VARIABLES) 和 common(VARIABLES)...我比较了两个 Arraylist 并从新 Arraylist Finalarr(VARIABLE) 中的 Arraylist 中检索了公共(public)元素...

我正在将 Arraylist 传递给函数 getPlayers(Finalarr)......下面是函数......

我在 FinalArr 数组列表中有电话号码,并希望从电话的联系簿/电话簿中获取他们的名字....我想将值存储在数组列表中...

 private ArrayList < DATA_CONTACT > getPlayers(ArrayList < String > filterVALUES) {
    ArrayList < DATA_CONTACT > players = new ArrayList < DATA_CONTACT > ();

    ContentResolver cr = getContext().getContentResolver();

    Cursor phoneCursor;
    for (int o = 0; o < filterVALUES.size(); o++) {

        phoneCursor = cr.query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?", new String[] {
                filterVALUES.get(o).toString()
            }, null);

        DATA_CONTACT p = null;
        while (phoneCursor.moveToNext()) {

            p = new DATA_CONTACT();
            final String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            String contact_display_name = phoneCursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

            // filtered.add(phoneNumber.toString());

            p.setName(contact_display_name);
            p.setPhone(phoneNumber.toString());
            p.setImg(R.drawable.com_facebook_button_like_background);
        }
        phoneCursor.close();
        players.add(p);

    }
    return players; //Returns a List of Contact Matching the Arraylist..
}

错误...

FATAL EXCEPTION: main
                                               Process: com.example.cosmic.zumi_test, PID: 534
                                               java.lang.NullPointerException: Attempt to invoke interface method 'int android.database.Cursor.getColumnIndex(java.lang.String)' on a null object reference
                                                   at com.example.cosmic.zumi_test.Contact_FRAGMENT3.getPlayers(Contact_FRAGMENT3.java:243)
                                                   at com.example.cosmic.zumi_test.Contact_FRAGMENT3.access$100(Contact_FRAGMENT3.java:57)
                                                   at com.example.cosmic.zumi_test.Contact_FRAGMENT3$1.onDataChange(Contact_FRAGMENT3.java:157)
                                                   at com.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:45)
                                                   at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
                                                   at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
                                                   at android.os.Handler.handleCallback(Handler.java:815)
                                                   at android.os.Handler.dispatchMessage(Handler.java:104)
                                                   at android.os.Looper.loop(Looper.java:194)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5643)
                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:372)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

最佳答案

异常点(最有可能?)在这里:

cursor.getColumnIndex(...

并告诉您 cursornull

您是指 phoneCursor 吗?

关于java - 从android中的电话簿获取联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41480432/

相关文章:

java - 如何在部署 Java Swing 应用程序时安装 JRE?

java - Websocket 阻塞,不会因客户端拔出/断电而超时

android - 当启动的 Activity 不是 "returner"时的结果的启动 Activity

java - 递归快速排序多个错误

java - Spring 是我的正确选择吗?

android - Dex Loader 无法执行多个 dex 文件定义

android - 对于 startActivity,ActivityManager Log 正在显示,但没有调用 Activity 的 onCreate

java - 如何在 JTextArea 中显示 ArrayList

Java Float 添加到 ArrayList<T> 后变为 0.0

Java ArrayList 与对象