Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从联系人选择器读取数据_Java_Android - Fatal编程技术网

Java 无法从联系人选择器读取数据

Java 无法从联系人选择器读取数据,java,android,Java,Android,我无法读取和处理活动中的联系人数据。 通过执行我的代码,它会显示一个联系人选择器,但当我选择一个联系人时,它会显示一个对话框“不幸的是,你的应用程序已停止”。 我可以选择联系人,但无法读取电话号码、姓名等数据 我很确定onActivityResult()方法中存在一些错误 onActivityResult()方法中的代码是:- protected void onActivityResult(int requestCode, int resultCode, Intent d

我无法读取和处理活动中的联系人数据。 通过执行我的代码,它会显示一个联系人选择器,但当我选择一个联系人时,它会显示一个对话框“不幸的是,你的应用程序已停止”。 我可以选择联系人,但无法读取电话号码、姓名等数据

我很确定onActivityResult()方法中存在一些错误

onActivityResult()方法中的代码是:-

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请参考了解内容提供者上的查询方法。您能告诉我代码中出现了什么问题吗@多拉