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

Android学习篇章38-ContentProvider-获取联系人信息

2013-11-03 11:22 423 查看
Mainactivity:

public class MainActivity extends Activity {
ListView  listview=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview=(ListView)findViewById(R.id.listview1);

Cursor c=this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null, null, null,null);
ArrayAdapter<String>  adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
while(c!=null && c.moveToNext())
{
//获得每一个联系人的id和姓名
StringBuilder sb=new StringBuilder();
int contacts_id=c.getInt(c.getColumnIndex(ContactsContract.Contacts._ID));
String name=c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
sb.append("姓名:"+name);
//好处是自动管理游标的生命周期
Cursor phone_cursor=this.managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contacts_id,
null, null);
if(phone_cursor!=null&&phone_cursor.moveToFirst())
{
String phone=  phone_cursor.getString(phone_cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
sb.append(" 电话:"+phone);
}
adapter.add(sb.toString());
if(phone_cursor!=null) phone_cursor.close();
}
if(c!=null)c.close();
listview.setAdapter(adapter);
}

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

}


XML:

<RelativeLayout 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"
tools:context=".MainActivity" >

<ListView android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

</RelativeLayout>


权限:

<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: