您的位置:首页 > 移动开发 > Android开发

Android获取联系人和电话号码

2013-10-27 17:39 393 查看
package com.example.example_03_02;

import android.os.Bundle;
import android.provider.ContactsContract;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.text.method.ScrollingMovementMethod;
import android.view.Menu;
import android.widget.TextView;

public class Activity_01 extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_01);
String string = "";
String contactName = "";
String contactNumber = "";
String contactId = "";
TextView textView = (TextView) findViewById(R.id.textView);
textView.setMovementMethod(ScrollingMovementMethod.getInstance());
ContentResolver cr = getContentResolver();// 获得ContentResolver实例
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
null, null, null);
if (cursor.moveToFirst()) { // 先用moveToFirsrt来判断查询结果是否为空,查询得到的cursor是指向第一条记录之前的,所以必须moveToFirst()
int displayNameColumn = cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
int id = cursor.getColumnIndex(ContactsContract.Contacts._ID);
do {
contactName = cursor.getString(displayNameColumn);// 获得联系人姓名
contactId = cursor.getString(id);
int phoneCount = cursor
.getInt(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));// 获得联系人电话个数
if (phoneCount > 0) {// 遍历查询电话号码
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (phones.moveToFirst()) {
do {
contactNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
string += contactName + ":" + contactNumber + "\n";
} while (phones.moveToNext());
}
}
} while (cursor.moveToNext());
}
cursor.close();
textView.setText(string);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_01, menu);
return true;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android cursor 遍历