需求:
一个edittext 一个button,点击button转到系统通讯录,选中其中一个通讯录item返回当前界面且把
选中的联系人号码用户名显示在edittext上
代码:
package com.example.contactdemo; import android.app.Activity; import android.content.ContentResolver; 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.EditText; public class MainActivity extends Activity { EditText text; String username,usernumber; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (EditText)findViewById(R.id.number); } public void click(View v){ startActivityForResult(new Intent( Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI), 0); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { ContentResolver reContentResolverol = getContentResolver(); Uri contactData = data.getData(); @SuppressWarnings("deprecation") Cursor cursor = managedQuery(contactData, null, null, null, null); cursor.moveToFirst(); username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = reContentResolverol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); while (phone.moveToNext()) { usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); text.setText(usernumber+" ("+username+")"); } } } }
布局:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="输入电话号码" android:id="@+id/number" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="从通讯录中获取" android:onClick="click" /> </LinearLayout>
添加权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />