首先抱歉我的英语不好 我是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;
}
}