无法从联系人选择器

时间:2015-04-24 02:38:08

标签: java android

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

我很确定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编程的新手。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为你的onActivityResult应该如下所示

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();

        }
    }
}