Java 无法从联系人选择器读取数据
我无法读取和处理活动中的联系人数据。 通过执行我的代码,它会显示一个联系人选择器,但当我选择一个联系人时,它会显示一个对话框“不幸的是,你的应用程序已停止”。 我可以选择联系人,但无法读取电话号码、姓名等数据 我很确定onActivityResult()方法中存在一些错误 onActivityResult()方法中的代码是:-Java 无法从联系人选择器读取数据,java,android,Java,Android,我无法读取和处理活动中的联系人数据。 通过执行我的代码,它会显示一个联系人选择器,但当我选择一个联系人时,它会显示一个对话框“不幸的是,你的应用程序已停止”。 我可以选择联系人,但无法读取电话号码、姓名等数据 我很确定onActivityResult()方法中存在一些错误 onActivityResult()方法中的代码是:- protected void onActivityResult(int requestCode, int resultCode, Intent d
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
contact=data.getData();
String projection[]={Phone.NUMBER};
Cursor c=getContentResolver().query(contact, projection, null, null, null);
c.moveToFirst();
int column=c.getColumnIndex(Phone.NUMBER);
String number=c.getString(column);
Toast.makeText(this,"The number of selected contact is:-"+ number, Toast.LENGTH_LONG).show();
}
}
请帮帮我。
我是android编程新手。
提前谢谢。我认为您的ONACTIVITY结果应该如下所示
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
Uri result = data.getData();
String id = result.getLastPathSegment();
String projection[] = { Phone.NUMBER };
Cursor c = getContentResolver().query(Phone.CONTENT_URI, projection,
Phone.CONTACT_ID + "=?", new String[] { id }, null);
c.moveToFirst();
int column = c.getColumnIndex(Phone.NUMBER);
String number = c.getString(column);
Toast.makeText(this,
"The number of selected contact is:-" + number,
Toast.LENGTH_LONG).show();
}
}
}
你在LogCat中得到了什么样的碰撞日志?发布它。您尝试过调试吗?您能告诉我为什么在查询方法中使用字符串id并将其作为参数(倒数第二个)传递吗?@Priyank Uri是文件所在的位置,getLastPathSegment()提供您通过选择的联系人的idContactPicker@Priyank请参考了解内容提供者上的查询方法。您能告诉我代码中出现了什么问题吗@多拉