Android官方API Demo学习之联系人获取
来源:互联网 发布:易语言统计成绩源码 编辑:程序博客网 时间:2024/04/19 22:17
Android官方API Demo学习之联系人获取
/** * Android API Demos之获取手机联系人 * * @description: * @author ldm * @date 2016-4-19 上午10:28:27 */public class MainActivity extends ListActivity { static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] { Contacts._ID, // 联系人ID Contacts.DISPLAY_NAME, // 联系人展示名 Contacts.STARRED, // 表示该联系人是用星号标记的,即favorite的联系人;0表示没有用星号标记 Contacts.TIMES_CONTACTED, // 联系人被联系的次数 Contacts.CONTACT_PRESENCE, // 联系人呈现出来的状态,如离线、在线、忙碌等状态 Contacts.PHOTO_ID, // 联系人头像id Contacts.LOOKUP_KEY, // 联系人的查询键 Contacts.HAS_PHONE_NUMBER, // 0or1:如果值为1,则该联系人至少有一个电话号码;如果值为0,则该联系人没有电话号码 }; static final int SUMMARY_ID_COLUMN_INDEX = 0; static final int SUMMARY_NAME_COLUMN_INDEX = 1; static final int SUMMARY_STARRED_COLUMN_INDEX = 2; static final int SUMMARY_TIMES_CONTACTED_COLUMN_INDEX = 3; static final int SUMMARY_PRESENCE_STATUS_COLUMN_INDEX = 4; static final int SUMMARY_PHOTO_ID_COLUMN_INDEX = 5; static final int SUMMARY_LOOKUP_KEY = 6; static final int SUMMARY_HAS_PHONE_COLUMN_INDEX = 7; @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND (" + Contacts.HAS_PHONE_NUMBER + "=1) AND (" + Contacts.DISPLAY_NAME + " != '' ))"; Cursor c = getContentResolver().query(Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select, null, Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"); startManagingCursor(c); ContactListItemAdapter adapter = new ContactListItemAdapter(this, R.layout.item_layout, c); setListAdapter(adapter); } /** * 继承ResourceCursorAdapter通过指定一个定义了视图UI的XML文件来创建视图。 * * @description: * @author ldm * @date 2016-4-19 上午10:28:39 */ private final class ContactListItemAdapter extends ResourceCursorAdapter { public ContactListItemAdapter(Context context, int layout, Cursor c) { super(context, layout, c, true); } /** * 给View设置数据 */ @Override public void bindView(View view, Context context, Cursor cursor) { final ViewHolder cache = (ViewHolder) view .getTag(); //在缓冲区中检索请求的列的文本,将将其存储 cursor.copyStringToBuffer(SUMMARY_NAME_COLUMN_INDEX, cache.nameBuffer); int size = cache.nameBuffer.sizeCopied; cache.nameView.setText(cache.nameBuffer.data, 0, size); final long contactId = cursor.getLong(SUMMARY_ID_COLUMN_INDEX); final String lookupKey = cursor.getString(SUMMARY_LOOKUP_KEY); cache.photoView.assignContactUri(Contacts.getLookupUri(contactId, lookupKey)); } /** * 根据指定的xml文件创建视图 */ @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = super.newView(context, cursor, parent); ViewHolder cache = new ViewHolder(); cache.nameView = (TextView) view.findViewById(R.id.name); cache.photoView = (QuickContactBadge) view.findViewById(R.id.badge); view.setTag(cache); return view; } } final static class ViewHolder { public TextView nameView; public QuickContactBadge photoView; public CharArrayBuffer nameBuffer = new CharArrayBuffer(128); }}
item布局:
<QuickContactBadge android:id="@+id/badge" style="?android:attr/quickContactBadgeStyleWindowSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginBottom="3dip" android:layout_marginLeft="2dip" android:layout_marginRight="14dip" android:layout_marginTop="4dip" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@id/badge" android:paddingLeft="2dip" android:textAppearance="?android:attr/textAppearanceMedium" /></RelativeLayout>
0 0
- Android官方API Demo学习之联系人获取
- Android之获取联系人
- Android ContentProvider+获取系统联系人小Demo
- Android学习记录:获取联系人
- Android 之 获取联系人信息
- Android 之获取本地联系人
- android之获取手机联系人
- android学习之读取联系人
- Android获取通讯录联系人显示在EditText上Demo
- Android 获取系统联系人并发送短信demo
- Android获取通讯录联系人显示在EditText上Demo
- Android 仿微信联系人Demo
- Android官方API Guide学习之二 设备兼容性
- Android官方API Guide学习之三 系统权限
- Android软件开发之获取通讯录联系人 联系人图像
- Android开发之获取联系人信息
- Android通讯录管理一之联系人获取
- Android -ContentProvider之获取手机联系人
- UIUITextView设置类似于UITextField的placeholder
- 数据分类:决策树Decision Tree
- 代码规范工具-Checkstyle使用手册
- 【整理】python 3.x爬虫
- 如何禁止App在后台运行以及如何保存和恢复App的状态
- Android官方API Demo学习之联系人获取
- LeetCode[Array]---- 4Sum
- iOS应用跳转问题之:应用跳转
- 谈需求分析工作
- 文字生成二维码
- 【QT】:QT实现连接opencv,版本为2.3.10
- LeetCode 190. Reverse Bits
- live555
- 欢迎使用CSDN-markdown编辑器