This article illustrates how Android uses Contentresolver to search for a phone address book. Share to everyone for your reference, specific as follows:
Use Contentresolver in this program to access the Contacts keyword in your address book and deposit all the contacts you find in CursorAdapter. Enter the name of the search person A, will all start with a name will be displayed, input *, then all the names in the address book displayed in the Autocompleteview Adapterview, if the user selection event occurred, The checked contact number will be displayed in the TextView.
This program uses Contentresolver. Query (URI URI, string[] projection, string selection, string[] Selectionargs, String sortor Der) to remove all contacts in the Address Book, where the selection and Selectionargs are passed in to the null rep to find all of them. Using Cursor's getstring (column index) to get the storage content, where column index starts at 0, this differs from Java.sql.ResultSet because it starts at 1. With the Autocompletetextview.onitemclicklistener event, which is the event handling that is intercepted after the user clicks the contact, in which the contact's phone number is obtained in the Contactsadapter.getcursor () method.
The procedure is as follows:
Import android.app.Activity;
Import Android.content.ContentResolver;
Import Android.database.Cursor;
Import Android.os.Bundle;
Import android.provider.Contacts;
Import Android.view.View;
Import Android.widget.AdapterView;
Import Android.widget.AdapterView.OnItemClickListener;
Import Android.widget.AutoCompleteTextView;
Import Android.widget.TextView;
@SuppressWarnings ("deprecation") public class A07activity extends activity {private Autocompletetextview ACTV;
Private TextView TV;
Private Cursor C01;
Private Contactsadapter CA; Locate the fields in the Address Book public static string[] people={contacts.people._id, Contacts.People.PRIMARY_PHONE_ID, Contacts.people.
TYPE, Contacts.People.NUMBER, Contacts.People.LABEL, Contacts.People.NAME}; /** called the activity is a.
* * @Override public void onCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.main);
actv= (Autocompletetextview) Findviewbyid (R.ID.ACTV); tv= (TextView) Findviewbyid (r.id.tv);
Contentresolver Cr=getcontentresolver ();
C01=cr.query (Contacts.People.CONTENT_URI, people, NULL, NULL, Contacts.People.DEFAULT_SORT_ORDER);
Ca=new Contactsadapter (THIS,C01);
Actv.setadapter (CA); Actv.setonitemclicklistener (New Onitemclicklistener () {@Override public void Onitemclick (adapterview<?> arg0, V
Iew arg1, int arg2, long arg3) {//TODO auto-generated method Stub Cursor c02=ca.getcursor ();
C02.movetoposition (ARG2);
String number=c02.getstring (C02.getcolumnindexorthrow (Contacts.People.NUMBER)); Number=number==null? "
No phone input ": number;
Tv.settext (C02.getstring (C02.getcolumnindexorthrow (Contacts.People.NAME)) + "Tel is:" +number);
}
});
}
}
Import Android.content.ContentResolver;
Import Android.content.Context;
Import Android.database.Cursor;
Import android.provider.Contacts;
Import Android.view.LayoutInflater;
Import Android.view.View;
Import Android.view.ViewGroup;
Import Android.widget.CursorAdapter;
Import Android.widget.TextView;
@SuppressWarnings ("deprecation") public class Contactsadapter extends cursoradapter{contentresolver CR;
Public Contactsadapter (context, Cursor c) {Super (context, c);
TODO auto-generated Constructor stub cr=context.getcontentresolver (); @Override public void BindView (view view, context, Cursor Cursor) {//TODO auto-generated the method stub (Tex
Tview view). SetText (Cursor.getstring (Cursor.getcolumnindexorthrow (Contacts.People.NAME)));
@Override Public View Newview (context context, Cursor Cursor, ViewGroup parent) {//TODO auto-generated method stub
Final Layoutinflater li=layoutinflater.from (context); Final TextView tv= (TextView) li.inflate (Android. R.layOut.simple_dropdown_item_1line, parent, false);
Tv.settext (Cursor.getstring (Cursor.getcolumnindexorthrow (Contacts.People.NAME)));
return TV;
Public String convertostring (Cursor c) {return c.getstring (C.getcolumnindexorthrow (Contacts.People.NAME)); @SuppressWarnings ("null") public Cursor Runqueryonbackgroundthread (Charsequence cs) {if (Getfilterqueryprovider ()!=
NULL) {Getfilterqueryprovider (). RunQuery (CS);
} StringBuilder Sb=null;
String[] S=null;
if (cs==null) {sb=new StringBuilder ();
Sb.append ("UPPER (");
Sb.append (Contacts.ContactMethods.NAME);
Sb.append (") GLOB");
S=new string[]{cs.tostring (). toUpperCase () + "*"};
Return Cr.query (Contacts.People.CONTENT_URI, A07activity.people, sb==null? null:sb.toString (), S,
Contacts.People.DEFAULT_SORT_ORDER);
}
}
The Androidmanifest.xml is as follows:
<?xml version= "1.0" encoding= "Utf-8"?> <manifest xmlns:android=
"http://schemas.android.com/apk/res/" Android "
package=" com.my.a07 "
android:versioncode=" 1 "
android:versionname=" 1.0 ">
< USES-SDK android:minsdkversion= "Ten"/>
<application
android:icon= "@drawable/ic_launcher"
Android:label= "@string/app_name" >
<activity
android:name= ". A07activity "
android:label=" @string/app_name ">
<intent-filter>
<action android:name= "Android.intent.action.MAIN"/>
<category android:name= "Android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-permission android:name= " Android.permission.READ_CONTACTS "></uses-permission>
</manifest>
Contentresolver also allows you to add, modify, and delete information from your address book, and access audio, video, images, and more. The corresponding method is shown as follows:
Add: Public final Uri Insert (URI uri,contentvalues values), Contentvalue.put (Key,value), where key is the field name and value is the added data.
Modified: Public final int update (Uri uri,contentvalues values,string where, string[] Selectionargs), where is the condition string following the SQL where. Selectionargs is the data in the where.
Delete: public final int Delete (Uri uri,string where,string[] selectionargs).
The Contentvalue.put () method is used below. Add the contact person's information in the Address book through the program.
More interested readers of Android-related content can view this site: "The summary of Android controls usage" and "Android Development introduction and Advanced Course"
I hope this article will help you with the Android program.