Android获取通讯录联系人显示在EditText上Demo
2014-06-24 17:57
567 查看
需求:
一个edittext 一个button,点击button转到系统通讯录,选中其中一个通讯录item返回当前界面且把
选中的联系人号码用户名显示在edittext上
代码:
[html] view
plaincopy
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
[html] view
plaincopy
<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" />
一个edittext 一个button,点击button转到系统通讯录,选中其中一个通讯录item返回当前界面且把
选中的联系人号码用户名显示在edittext上
代码:
[html] view
plaincopy
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
[html] view
plaincopy
<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" />
相关文章推荐
- Android获取通讯录联系人显示在EditText上Demo
- Android学习小Demo一个显示行线的自定义EditText
- Android 调用联系人,返回值并显示在edittext上
- Android学习小Demo(11)一个显示行线的自定义EditText
- Android 防止EditText显示时自动获取焦点
- Android Edittext获取焦点后,弹出的软键盘显示搜索、发送、完成等功能
- Android中获取系统通讯录联系人并显示在EditText
- android 获取手机通讯录联系人,模拟通讯录显示
- Android中获取系统通讯录联系人并显示在EditText
- Android中获取系统通讯录联系人并显示在EditText
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- Android软件开发之获取通讯录联系人信息(二十九)
- Android中findViewById()h获取EditText 空指针问题
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- Android中findViewById()h获取EditText 空指针问题
- Android软件开发之获取通讯录联系人信息(转)
- Android的EditText自动获取焦点并弹出输入法问题
- Android:EditText焦点触发布局隐藏以及显示
- android TextView和EditText中显示图片
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等