首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

取得联系人姓名,相关电话以及邮件地址sdk2.0

2012-09-27 
获得联系人姓名,相关电话以及邮件地址sdk2.0权限别忘记 uses-permission android:nameandroid.permissi

获得联系人姓名,相关电话以及邮件地址sdk2.0

权限别忘记

 <uses-permission android:name="android.permission.READ_CONTACTS" />

?

创建一个抽象类 并判断版本问题

abstract class ContactsAdapterBridge {abstract ListAdapter buildNameAdapter(Activity a);abstract ListAdapter buildPhonesAdapter(Activity a);abstract ListAdapter buildEmailAdapter(Activity a);public static final ContactsAdapterBridge INSTANCE=buildBridge();private static ContactsAdapterBridge buildBridge() {int sdk=new Integer(Build.VERSION.SDK).intValue();if (sdk<5) {return(new OldContactsAdapterBridge());}return(new NewContactsAdapterBridge());}}

?

实现这个类

class NewContactsAdapterBridge extends ContactsAdapterBridge {ListAdapter buildNameAdapter(Activity a) {String[] PROJECTION=new String[] { Contacts._ID,Contacts.DISPLAY_NAME,};Cursor c=a.managedQuery(Contacts.CONTENT_URI,PROJECTION, null, null, null);return(new SimpleCursorAdapter(a,android.R.layout.simple_list_item_1,c,new String[] {Contacts.DISPLAY_NAME},new int[] {android.R.id.text1}));}ListAdapter buildPhonesAdapter(Activity a) {String[] PROJECTION=new String[] { Contacts._ID,Contacts.DISPLAY_NAME,Phone.NUMBER};Cursor c=a.managedQuery(Phone.CONTENT_URI,PROJECTION, null, null, null);return(new SimpleCursorAdapter(a,android.R.layout.simple_list_item_2,c,new String[] {Contacts.DISPLAY_NAME,Phone.NUMBER},new int[] {android.R.id.text1,android.R.id.text2}));}ListAdapter buildEmailAdapter(Activity a) {String[] PROJECTION=new String[] { Contacts._ID,Contacts.DISPLAY_NAME,Email.DATA};Cursor c=a.managedQuery(Email.CONTENT_URI,PROJECTION, null, null, null);return(new SimpleCursorAdapter(a,android.R.layout.simple_list_item_2,c,new String[] {Contacts.DISPLAY_NAME,Email.DATA},new int[] {android.R.id.text1,android.R.id.text2}));}}

?注意不同颜色就好了。

?

public class ContactSpinners extends ListActivity implements AdapterView.OnItemSelectedListener {private static String[] options={"Contact Names","Contact Names & Numbers","Contact Names & Email Addresses"};private ListAdapter[] listAdapters=new ListAdapter[3];@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initListAdapters();Spinner spin=(Spinner)findViewById(R.id.spinner);spin.setOnItemSelectedListener(this);ArrayAdapter<String> aa=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,options);aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spin.setAdapter(aa);}public void onItemSelected(AdapterView<?> parent,View v, int position, long id) {setListAdapter(listAdapters[position]);}public void onNothingSelected(AdapterView<?> parent) {// ignore}private void initListAdapters() {listAdapters[0]=ContactsAdapterBridge.INSTANCE.buildNameAdapter(this);listAdapters[1]=ContactsAdapterBridge.INSTANCE.buildPhonesAdapter(this);listAdapters[2]=ContactsAdapterBridge.INSTANCE.buildEmailAdapter(this);}}

?

主程序就很简单了。

最后就是以前版本的查找联系人

class OldContactsAdapterBridge extends ContactsAdapterBridge {ListAdapter buildNameAdapter(Activity a) {String[] PROJECTION=new String[] { Contacts.People._ID,Contacts.PeopleColumns.NAME};Cursor c=a.managedQuery(Contacts.People.CONTENT_URI,PROJECTION, null, null,Contacts.People.DEFAULT_SORT_ORDER);return(new SimpleCursorAdapter(a,android.R.layout.simple_list_item_1,c,new String[] {Contacts.PeopleColumns.NAME},new int[] {android.R.id.text1}));}ListAdapter buildPhonesAdapter(Activity a) {String[] PROJECTION=new String[] { Contacts.Phones._ID,Contacts.Phones.NAME,Contacts.Phones.NUMBER};Cursor c=a.managedQuery(Contacts.Phones.CONTENT_URI,PROJECTION, null, null,Contacts.Phones.DEFAULT_SORT_ORDER);return(new SimpleCursorAdapter(a,android.R.layout.simple_list_item_2,c,new String[] {Contacts.Phones.NAME,Contacts.Phones.NUMBER},new int[] {android.R.id.text1,android.R.id.text2}));}ListAdapter buildEmailAdapter(Activity a) {String[] PROJECTION=new String[] { Contacts.ContactMethods._ID,Contacts.ContactMethods.DATA,Contacts.PeopleColumns.NAME};Cursor c=a.managedQuery(Contacts.ContactMethods.CONTENT_EMAIL_URI,PROJECTION, null, null,Contacts.ContactMethods.DEFAULT_SORT_ORDER);return(new SimpleCursorAdapter(a,android.R.layout.simple_list_item_2,c,new String[] {Contacts.PeopleColumns.NAME,Contacts.ContactMethods.DATA},new int[] {android.R.id.text1,android.R.id.text2}));}}

?要导入的包

import android.database.Cursor;import android.provider.ContactsContract.Contacts;import android.provider.ContactsContract.CommonDataKinds.Email;import android.provider.ContactsContract.CommonDataKinds.Phone;

?

热点排行