做酒店网站所用到的算法,中企动力员工邮箱忘记密码,网站导航栏自适应显示,wordpress弹窗提示本节通过Content Provider机制获取系统中的联系人信息#xff0c;注意这个Anctivity直接继承的是ListActivity#xff0c;所以不再需要setContentView函数来加载布局文件了#xff08;我自己新建一个项目来跑这个anctivity时在这里卡了半天#xff09;。 在AndroidManifest…本节通过Content Provider机制获取系统中的联系人信息注意这个Anctivity直接继承的是ListActivity所以不再需要setContentView函数来加载布局文件了我自己新建一个项目来跑这个anctivity时在这里卡了半天。 在AndroidManifest.xml中需配置权限以访问手机中的联系人信息添加如下代码 uses-permission android:nameandroid.permission.READ_CONTACTS/uses-permission 具体解释放入代码中。 1 public class QuickContactsDemo extends ListActivity { 2 3 //设置要从联系人数据库中要查找的数据 4 static final String[] CONTACTS_SUMMARY_PROJECTION new String[] { 5 Contacts._ID, // 0 6 Contacts.DISPLAY_NAME, // 1 7 Contacts.STARRED, // 2 8 Contacts.TIMES_CONTACTED, // 3 9 Contacts.CONTACT_PRESENCE, // 410 Contacts.PHOTO_ID, // 511 Contacts.LOOKUP_KEY, // 612 Contacts.HAS_PHONE_NUMBER, // 713 };14 15 static final int SUMMARY_ID_COLUMN_INDEX 0;16 static final int SUMMARY_NAME_COLUMN_INDEX 1;17 static final int SUMMARY_STARRED_COLUMN_INDEX 2;18 static final int SUMMARY_TIMES_CONTACTED_COLUMN_INDEX 3;19 static final int SUMMARY_PRESENCE_STATUS_COLUMN_INDEX 4;20 static final int SUMMARY_PHOTO_ID_COLUMN_INDEX 5;21 static final int SUMMARY_LOOKUP_KEY 6;22 static final int SUMMARY_HAS_PHONE_COLUMN_INDEX 7;23 24 25 Override26 public void onCreate(Bundle savedInstanceState) {27 super.onCreate(savedInstanceState);28 29 //设置通过uri要查询的语句30 String select (( Contacts.DISPLAY_NAME NOTNULL) AND (31 Contacts.HAS_PHONE_NUMBER 1) AND (32 Contacts.DISPLAY_NAME ! ));33 34 //通过ContentResolver的query函数传入联系人的URI Contacts.CONTENT_URI查询所需信息最后一个参数决定按照联系人的姓名进行降序排列35 Cursor c 36 getContentResolver().query(Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select,37 null, Contacts.DISPLAY_NAME COLLATE LOCALIZED ASC);38 39 //一个cursor使用完毕后需将其关闭cursor.close()。如果不想自己管理cursor40 //可调用下面的startManagingCursor语句让系统自行管理cursor会在程序结束时自动释放41 startManagingCursor(c);42 43 ContactListItemAdapter adapter new ContactListItemAdapter(this, R.layout.quick_contacts, c);44 setListAdapter(adapter);45 46 }47 48 private final class ContactListItemAdapter extends ResourceCursorAdapter {49 public ContactListItemAdapter(Context context, int layout, Cursor c) {50 super(context, layout, c);51 }52 53 54 //重写bindView方法设置每个ListView内每一个view的值55 Override56 public void bindView(View view, Context context, Cursor cursor) {57 final ContactListItemCache cache (ContactListItemCache) view.getTag();58 TextView nameView cache.nameView;59 QuickContactBadge photoView cache.photoView;60 // Set the name61 cursor.copyStringToBuffer(SUMMARY_NAME_COLUMN_INDEX, cache.nameBuffer);62 int size cache.nameBuffer.sizeCopied;63 cache.nameView.setText(cache.nameBuffer.data, 0, size);64 final long contactId cursor.getLong(SUMMARY_ID_COLUMN_INDEX);65 final String lookupKey cursor.getString(SUMMARY_LOOKUP_KEY);66 cache.photoView.assignContactUri(Contacts.getLookupUri(contactId, lookupKey));67 }68 69 Override70 public View newView(Context context, Cursor cursor, ViewGroup parent) {71 View view super.newView(context, cursor, parent);72 ContactListItemCache cache new ContactListItemCache();73 cache.nameView (TextView) view.findViewById(R.id.name);74 cache.photoView (QuickContactBadge) view.findViewById(R.id.badge);75 view.setTag(cache);76 77 return view;78 }79 }80 81 final static class ContactListItemCache {82 public TextView nameView;83 public QuickContactBadge photoView;84 public CharArrayBuffer nameBuffer new CharArrayBuffer(128);85 }86 } quick_contacts.xml布局文件 1 RelativeLayout 2 xmlns:androidhttp://schemas.android.com/apk/res/android 3 android:layout_widthfill_parent 4 android:paddingLeft0dip 5 android:paddingRight9dip 6 android:layout_height wrap_content 7 android:minHeight48dip 8 9 QuickContactBadge10 android:idid/badge11 android:layout_marginLeft2dip12 android:layout_marginRight14dip13 android:layout_marginTop4dip14 android:layout_marginBottom3dip15 android:layout_alignParentLefttrue16 android:layout_alignParentToptrue17 android:layout_height wrap_content18 android:layout_width wrap_content19 android:srcdrawable/ic_contact_picture20 style?android:attr/quickContactBadgeStyleWindowSmall /21 22 TextView23 android:idid/name24 android:textAppearance?android:attr/textAppearanceMedium25 android:paddingLeft2dip26 android:layout_centerVerticaltrue27 android:layout_toRightOfid/badge28 android:layout_widthfill_parent29 android:layout_heightwrap_content /30 31 /RelativeLayout 以上即可。 下一节Api demo源码学习9--App/Activity/Receive Result --Activity间传递数据 转载于:https://www.cnblogs.com/xutao1988/archive/2011/12/14/2288027.html