程序简介:设置一个Button,在onClick()事件驱动后,调用手机内置的通讯录界面,并在选择联系人之后,返回自己的Activity。取得联系人的名字和电话号码放入两个EditText中。
程序如下所示:
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@SuppressWarnings("deprecation")
public class A08Activity extends Activity {
EditText et01,et02;
Button b;
TextView tv;
//定义一个静态常数作为判断数据返回给主Activity使用
public static final int PICK_CONTACT_SUBACTIVITY=2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b=(Button)findViewById(R.id.button);
b.setText("查询联系人资料");
b.setBackgroundColor(Color.GREEN);
et01=(EditText)findViewById(R.id.et01);
et02=(EditText)findViewById(R.id.et02);
et01.setBackgroundColor(Color.YELLOW);
et02.setBackgroundColor(Color.YELLOW);
et01.setTextColor(Color.RED);
et02.setTextColor(Color.RED);
b.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//将联系人的资源位置作为参数传入Uri中
Uri uri=Uri.parse("content://contacts/people");
//将Intent.ACTION_PICK常数和Uri对象传入
Intent i=new Intent(Intent.ACTION_PICK,uri);
//打开新的Activity
startActivityForResult(i,PICK_CONTACT_SUBACTIVITY);
}
});
}
public void onActivityResult(int requestCode,int resultCode,Intent data){
switch(requestCode){
case PICK_CONTACT_SUBACTIVITY:
final Uri uriRet=data.getData();
if(uriRet!=null){
try {
//通过Cursor访问联系人的资料
Cursor c=managedQuery(uriRet,null,null,null,null);
// 将Cursor移到数据最前端
c.moveToFirst();
String name=c.getString(c.getColumnIndexOrThrow(Contacts.People.NAME));
String number=c.getString(c.getColumnIndexOrThrow(Contacts.People.NUMBER));
et01.setText(name);
et02.setText(number);
} catch (IllegalArgumentException e) {
tv.setText(e.toString());
e.printStackTrace();
}
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
}
注意:本程序还需要添加android.permission.READ_CONTACTS权限。