有 Java 编程相关的问题?

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

java如何从ContactsContract获取姓名、号码和ID。安卓中的联系人

我得到这个错误java.lang.IllegalArgumentException: Invalid column data1

这是我的密码

 @Override
    public void onActivityResult(int reqCode, int resultCode, Intent data){
        super.onActivityResult(reqCode, resultCode, data);
        setResult(RESULT_OK, data);
        switch (reqCode) {
            case (PICK_CONTACT) :
                if (resultCode == Activity.RESULT_OK) {


                    TextView phoneTextView = (TextView)findViewById(R.id.textView);
                    Uri contactData = data.getData();

                    String[] mProjection =
                            {
                                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                                    ContactsContract.CommonDataKinds.Phone.NUMBER,   // Contract class constant for the word column name
                                    ContactsContract.CommonDataKinds.Phone._ID, // Contract class constant for the locale column name
                            };

                    Cursor c =  getContentResolver().query(contactData,mProjection, null, null, null);

                    String contactName = "";



                    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
                        contactName = c.getString(0);
                        Log.v("NAME OF CONTACT", contactName);
                    }




                        c.close();

                    }
                }
                //break;
        }

    }

当代码如上所示时,我会收到前面显示的错误消息

然而,当我更改这段代码时

String[] mProjection =
                            {
                                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                                    ContactsContract.CommonDataKinds.Phone.NUMBER,   // Contract class constant for the word column name
                                    ContactsContract.CommonDataKinds.Phone._ID, // Contract class constant for the locale column name
                            };

String[] mProjection =
                            {
                                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,

                            };

它工作,日志显示名称

我的问题是,为什么会这样


共 (0) 个答案