尝试选择联系人并在Android中的TextBox中显示其编号时出错

时间:2017-11-14 05:18:09

标签: java android android-contacts

首先抱歉我的英语不好 我是Android开发的新手。 我正在尝试开发此应用程序,用户可以在其中单击按钮,然后联系人将显示,然后可以选择一个且仅一个联系人,并在文本框中显示其编号。 但我每次都会遇到这个错误:

  

"无法从CursorWindow读取第0行col -1。确保光标   在从中访问数据之前已正确初始化"

而有趣的是,当我使用 HAS_PHONE_NUMBER 时,它返回 1 ,这意味着联系人有电话号码。 当我使用 DISPLAY_NAME 时,它会毫无问题地返回联系人姓名。 但当我使用 NUMBER 时,错误显示出来! 谁能帮我? 顺便说一句,如果有帮助,我会使用片段吗? 这是我的代码:

@Override
public void onClick(View v) {

    if (v.getId() == R.id.btnContact) {

        Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
        startActivityForResult(intent, PICK_CONTACT);        }

}


private Uri uriContact;
private String contactID; // contacts unique ID





@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    switch (reqCode) {
        case (PICK_CONTACT):
            if (resultCode == Activity.RESULT_OK) {
                Uri contactData = data.getData();
                Cursor phone = getActivity().getContentResolver().query(contactData, null, null, null, null);
                phone.moveToFirst();

                if (phone.moveToFirst()) {
                    String num = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                    // Todo something when contact number selected
                    placeholderNumber.setText("" + num);
                }
            }
            break;
    }
}

0 个答案:

没有答案