In, mobile phone QQ you will find the software to read the phone Address Book this feature, this feature makes the software better with the phone contacts binding, so as to achieve sharing, call, read user information and other operations. Below we will implement this function through a demo
First we look at:
-----------------------------------------------------------the "to-do section"---------------------------------------------- -
"Development environment"Android Stdio 1.1.0
Analysis
The software contains a ListView control, which is one of the most practical controls in Android programming, customizing the layout of the item and the data in the control from the contents of your phone's address book. So the adapter chooses:cursoradapter or baseadapter, The small part uses the CursorAdapter, obtains the data and assigns to Item , Another important point in the demo is to get access to the phone's address book
Encoding
(1) layout of the code is not a small part of the solution, specifically see the following demo of the article
(2) Contact information entity class
Package cn.edu.bzu.contacts_listview;/** * Created by monster on 2015/4/26. * Contact Entity class * Function: Implements the people contact entity class */public class MyFile {public String peoplename; public int imgid; Public String Peoplenumber; Public MyFile (string peoplename, int imgid, string peoplenumber) { super (); Peoplename = Peoplename; Imgid = Imgid; Peoplenumber = Peoplenumber; } Public MyFile () { super (); }}
(3) Adapter for contact list
/** * Created by monster on 2015/4/26. */public class Peoplelistadapter extends CursorAdapter {private Layoutinflater minflater;//define Layoutinflater object Publi C Peoplelistadapter (context context, Cursor c) {Super (context, c); Minflater=layoutinflater.from (context); } @Override public view Newview (context context, cursor cursor, viewgroup parent) {//Initialize view of each item Return Minflater.inflate (R.layout.activity_list_item,parent,false); } @Override public void BindView (view view, context context, cursor cursor) {//sets the layout effect of item Viewholder Viewholder=new Viewholder (); Viewholder.peopleimage= (ImageView) View.findviewbyid (r.id.ivnews); Viewholder.peoplename= (TextView) View.findviewbyid (r.id.tvnewstitle); Viewholder.peoplenumber= (TextView) View.findviewbyid (r.id.tvnewsinfo); Read Data ViewHolder.PeopleImage.setBackgroundResource (r.mipmap.ic_launcher) from phone contacts; ViewHolder.PeopleName.setText (cursor.getsTring (Cursor.getcolumnindex (ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME))); ViewHolder.PeopleNumber.setText (Cursor.getstring (Cursor.getcolumnindex ( (ContactsContract.CommonDataKinds.Phone.NUMBER))); } class viewholder{ImageView peopleimage; TextView Peoplename; TextView Peoplenumber; }}
(4) writing Span style= "font-family:comic Sans MS;" >mainactivity.java
Package Cn.edu.bzu.contacts_listview;import Android.app.activity;import Android.database.cursor;import Android.os.bundle;import Android.provider.contactscontract;import Android.widget.listview;public Class Mainactivity extends Activity {private ListView Lv; Private Peoplelistadapter adapter; Private cursor cursor;//defines the cursor @Override protected void onCreate (Bundle savedinstancestate) {s) used to store objects that need to be displayed. Uper.oncreate (savedinstancestate); Setcontentview (R.layout.activity_main); Findview ();//Control instantiation SetData ();//Set Data SETLV ();//bind adapter} private void Setlv () {adapter=new peop Lelistadapter (Mainactivity.this,cursor); Lv.setadapter (adapter); private void SetData () {//Getcontentresolver gets the contact information from the phone cursor=getcontentresolver (). Query (Contactscon Tract. Commondatakinds.phone.content_uri,null,null,null,null); } private void Findview () {lv= (ListView) Findviewbyid (r.id.lv); }}
(5) Set permissions in the manifest file
<uses-permission android:name= "Android.permission.READ_CONTACTS" ></uses-permission>
----------------------------------------------------"Summary section"----------------------------------------------------- -
Summary
The adapter inherits the CursorAdapter adapter: The three methods that must be implemented are:
Public Peoplelistadapter (context context, Cursor c)
public view Newview (context context, cursor cursor, viewgroup parent)--->> initialize view of each item
public void BindView (view view, context context, cursor cursor)---->> set The layout effect of Item
(Read the data from the phone's contact person)
Cursor.getstring (Cursor.getcolumnindex (ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME))--->> Code to read the contact's name
Cursor.getstring (Cursor.getcolumnindex (ContactsContract.CommonDataKinds.Phone.NUMBER))--->> read code for contact numbers
Appendix
Source code Address:Https://github.com/monsterLin/contacts_listview
Android programming-Simple phone Address Book