android studio for android learning (十二) 查看并获取联系人信息

来源:互联网 发布:爱淘宝红包不中 编辑:程序博客网 时间:2024/04/30 16:02

1.点击一个按钮就会显示系统的联系人列表,当用户点击联系人之后就会看到详细的名字和电话。

2.具体的代码如下:首先在AndroidManifest.xml文件中配置用户权限。

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

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.dragon.testevent.MainActivity"> <Button     android:id="@+id/bn"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="查看联系人"     /> <!--显示联系人姓名的文本框--> <EditText     android:id="@+id/show"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:editable="false"     android:cursorVisible="false"     /> <!--显示联系人电话号码的文本框--> <EditText     android:id="@+id/phone"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:editable="false"     android:cursorVisible="false"     /></LinearLayout>

MainActivity.java

package com.dragon.testevent;import android.app.Activity;import android.content.CursorLoader;import android.content.Intent;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.provider.ContactsContract;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {    final int PICK_CONTACT = 0;    @Override    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取按钮组件        Button bn = (Button) findViewById(R.id.bn);//绑定监听事件        bn.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View arg0){                Intent intent = new Intent();//                intent--Action是表示抽象要完成的动作                intent.setAction(Intent.ACTION_GET_CONTENT);//                intent--Type:类型                intent.setType("vnd.android.cursor.item/phone");                startActivityForResult(intent,PICK_CONTACT);            }        });    }    @Override    public void onActivityResult(int requestCode, int resultCode, Intent data){        super.onActivityResult(requestCode,resultCode,data);        switch(requestCode){            case(PICK_CONTACT):                if(resultCode==Activity.RESULT_OK){//                    获取返回数据                    Uri contactData = data.getData();                    CursorLoader cursorLoader = new CursorLoader(this,contactData,null,null,null,null);//                    查询联系人的名字                    Cursor cursor = cursorLoader.loadInBackground();                    if(cursor.moveToFirst()){                        String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));                        //获取联系人的名字                        String name =cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));                        String phoneNumber = "No phone Number";//                        根据联系人查询联系人的详细信息                        Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactId,null,null);                        if(phones.moveToFirst()){//                            提取电话号码                            phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));                        }//                        关闭游标                        phones.close();                        EditText show = (EditText)findViewById(R.id.show);//                        显示联系人的名称                        show.setText(name);                        EditText phone=(EditText)findViewById(R.id.phone);//                        显示联系人的号码                        phone.setText(phoneNumber);                    }//                    关闭游标                    cursor.close();                }                break;        }    }}

具体的代码分析以写注释,大家可以去测试用下。

0 0
原创粉丝点击