步骤:
1.创建一个项目
方法一:

2.在activity_main.xml中添加一个按钮,和一个listview用来展示数据
3.得到内容提供者
4.创建一个查询所有数据的点击事件
1).查询联系人
2).实列化适配器 然后重写4个方法
3).在getView()中实列化一个控件TextView,获取联系人的号码,获取联系人的姓名,把获取的值赋给控件
4).得到activity_main.xml中ListView的id
5).把适配器放入到listView中展示数据
//查询所有数据的点击事件public void getContact(View view){// 查询联系人 final Cursor cursor=mContentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); //实列化适配器 BaseAdapter adapter = new BaseAdapter(){@Overridepublic int getCount() {// TODO Auto-generated method stubreturn cursor.getCount();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {cursor.moveToPosition(position);//实列化控件 TextView tv_main_contact = new TextView(MainActivity.this); //获取联系人的号码 String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)).replace("-", "").replace(" ", "").trim(); //获取联系人的姓名 String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)).trim(); //把获取的值赋给控件 tv_main_contact.setText("姓名:"+name+"号码:"+number); return tv_main_contact;}};//得到activity_main.xml中ListView的id final ListView listView = (ListView)findViewById(R.id.lv_main_values); //把适配器放入到listView中展示数据 listView.setAdapter(adapter);}5.添加读取联系人的权限

如果到下图这样就表示完成了

方法二:
在同上项目中添加代码就可以完成。
1.在activity_main.xml添加一个按钮和一个TextView展示数据

2.创建一个查询单个数据的点击事件
public void getSingContact(View view){//调用联系人界面Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setType("vnd.android.cursor.dir/phone");startActivityForResult(intent,0x100);}
补充一下:
调用联系人列表有几种方式
1).到联系人界面Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Contacts.People.CONTENT_URI); startActivity(intent);
2).调用联系人界面Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setData(Contacts.People.CONTENT_URI); startActivity(intent);
3).跳转到指定id进行插入联系人
Intent intent=new Intent(Intent.ACTION_EDIT,Uri.parse("content://com.android.contacts/contacts/"+"1")); startActivity(intent);
因为查询单个是去联系人列表选择某一个联系人,所以需要跳转到联系人列表,选中之后把数据带回。
使用的是
调用联系人界面Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setType("vnd.android.cursor.dir/phone");startActivityForResult(intent,0x100);
3.重写onActivityResult方法
得到控件TextView 的id
PRivate TextView mTv_main_values;
tv_main_values=(TextView) findViewById(R.id.tv_main_values);

得到下图的就表示完成了


新闻热点
疑难解答