最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Android ContentProvider查看/读取手机联系人实例
时间:2017-03-25 编辑:简简单单 来源:一聚教程网
看到某些App里面有读取联系人的功能,然后自己尝试了一下。发现这个挺简单的。然后自己就做了一个demo给大家,希望借这个demo可以让大家学习一下怎么实现读取手机联系人。
这里我用了两种方法去读取:第一张图片是跳转到系统自带的联系人界面,第二种就是直接去读取让后绑上来显示在主页面。话不多说直接上代码。
记得在AndroidManifest.xml 记得加入这两句,不然就读取不到联系人。
代码如下 | 复制代码 |
代码如下 | 复制代码 |
packagecom.example.android_contentersolver;
importandroid.app.Activity; importandroid.app.AlertDialog; importandroid.content.DialogInterface; importandroid.content.Intent; importandroid.database.Cursor; importandroid.net.Uri; importandroid.os.Bundle; importandroid.provider.Contacts; importandroid.provider.ContactsContract; importandroid.telephony.PhoneStateListener; importandroid.telephony.TelephonyManager; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.view.ViewGroup; importandroid.widget.BaseAdapter; importandroid.widget.CheckBox; importandroid.widget.ListView; importandroid.widget.TextView;
publicclassMainActivityextendsActivity { @Override protectedvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
findViewById(R.id.main_btn).setOnClickListener(newOnClickListener() { @Override publicvoidonClick(View v) { // TODO Auto-generated method stub //查询联系人号码 finalCursor cursor = getContentResolver() .query(ContactsContract.CommonDataKinds .Phone.CONTENT_URI,null,null,null,null);
BaseAdapter adapter =newBaseAdapter() { @Override publicintgetCount() { returncursor.getCount(); }
@Override publicObject getItem(intposition) { returnposition; }
@Override publiclonggetItemId(intposition) { returnposition; }
@Override publicView getView(intposition, View convertView, ViewGroup parent) { cursor.moveToPosition(position); // CheckBox rb = new CheckBox(MainActivity.this); TextView text=newTextView(MainActivity.this); // 获取联系人的电话号码,并去掉中间的中划线、空格 String number = cursor .getString(cursor.getColumnIndex( ContactsContract.CommonDataKinds .Phone.NUMBER)) .replace("-","") .replace(" ",""); // rb.setText(number); String name = cursor .getString(cursor.getColumnIndex( ContactsContract.CommonDataKinds .Phone.DISPLAY_NAME)); text.setText("名字:"+name+" 电话号码:"+number);
returntext; } };
//加载listview ListView listview=(ListView) findViewById(R.id.mian_list); listview.setAdapter(adapter); } });
//跳转系统的联系人界面 findViewById(R.id.main_btn_sys).setOnClickListener(newOnClickListener() {
@Override publicvoidonClick(View v) { // TODO Auto-generated method stub Intent intent=newIntent(); intent.setAction(intent.ACTION_PICK); intent.setType("vnd.android.cursor.dir/phone"); startActivityForResult(intent,0x100); } }); }
@Override protectedvoidonActivityResult(intrequestCode,intresultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); Uri uri=data.getData(); Cursor cursor = getContentResolver() .query(uri,null,null,null,null); while(cursor.moveToNext()){ String name=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NAME)); String number=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NUMBER)); TextView textview=(TextView) findViewById(R.id.mian_lists); textview.setText("名字:"+name+" 电话号码:"+number); } } } |
-
下一个: 猫眼电影怎么刷票 猫眼电影票刷票教程
相关文章
- sora软件价格介绍 02-22
- sora官网入口地址一览 02-22
- Sora生成的视频使用教程 02-22
- 《梦幻西游》元宵灯谜线索答案大全2024 02-22
- 《原神》有朋自远方来第一天通关攻略 02-22
- 《苏醒之路》四个结局达成攻略 02-22