调用联系人选择

有三个步骤,这一过程。

1)权限

添加权限读取数据到您的联系人应用程序清单。

<uses-permission android:name="android.permission.READ_CONTACTS"/> 

2)调用联系皮克

在您的活动,创建一个Intent,要求系统能够找到一个可以执行的活动,从在联系人的URI的项目取货行动。

Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI); 

呼叫startActivityForResult ,通过在本意向书(和一个请求代码整数PICK_CONTACT在此示例)。 这将导致Android的推出是支持活动的登记,以ACTION_PICKPeople.CONTENT_URI ,然后回到这个)活动时作出的选择(或取消。

startActivityForResult(intent, PICK_CONTACT); 

3)听力的结果

另外,在您的活动,覆盖onActivityResult方法,听取了从返回的'选择一个联络人'活动,您在步骤2开始。 您应该检查返回的请求代码相匹配的价值你期待,而结果代码是RESULT_OK 。

你可以调用所选联络的URI getData()意向书的数据参数。 为了选定联系人的姓名您需要使用该URI创建一个新的查询和提取从返回的游标的名称。

@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 c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
// TODO Whatever you want to do with the selected contact name.
}
}
break;
}
}
posted @ 2011-05-20 23:14  pandans  阅读(376)  评论(0编辑  收藏  举报