博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 快速选择联系人
阅读量:6868 次
发布时间:2019-06-26

本文共 4136 字,大约阅读时间需要 13 分钟。

Activity 代码如下:

 

/* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.example.android.apis.app;import com.example.android.apis.R;import android.app.ListActivity;import android.content.Context;import android.database.CharArrayBuffer;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract.Contacts;import android.view.View;import android.view.ViewGroup;import android.widget.QuickContactBadge;import android.widget.ResourceCursorAdapter;import android.widget.TextView;public class QuickContactsDemo extends ListActivity {    static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] {            Contacts._ID, // 0            Contacts.DISPLAY_NAME, // 1            Contacts.STARRED, // 2            Contacts.TIMES_CONTACTED, // 3            Contacts.CONTACT_PRESENCE, // 4            Contacts.PHOTO_ID, // 5            Contacts.LOOKUP_KEY, // 6            Contacts.HAS_PHONE_NUMBER, // 7    };    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;    @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.quick_contacts, c);        setListAdapter(adapter);    }    private final class ContactListItemAdapter extends ResourceCursorAdapter {        public ContactListItemAdapter(Context context, int layout, Cursor c) {            super(context, layout, c);        }        @Override        public void bindView(View view, Context context, Cursor cursor) {            final ContactListItemCache cache = (ContactListItemCache) view.getTag();            // Set the name            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));        }        @Override        public View newView(Context context, Cursor cursor, ViewGroup parent) {            View view = super.newView(context, cursor, parent);            ContactListItemCache cache = new ContactListItemCache();            cache.nameView = (TextView) view.findViewById(R.id.name);            cache.photoView = (QuickContactBadge) view.findViewById(R.id.badge);            view.setTag(cache);            return view;        }    }    final static class ContactListItemCache {        public TextView nameView;        public QuickContactBadge photoView;        public CharArrayBuffer nameBuffer = new CharArrayBuffer(128);    }}

  

 

布局界面如下:

  

 

转载地址:http://dmkfl.baihongyu.com/

你可能感兴趣的文章
Go语言之类型
查看>>
把网站生成EXE文件运行,可封装网站源码/支持源码多重加密
查看>>
Goldengate单向大事务复制性能测试
查看>>
python 采用 BoundedSemaphore 限制多进程访问qps
查看>>
网络与安全
查看>>
heartbeat 编译安装配置
查看>>
第一次实际配置校园网
查看>>
httpd, php, mariadb分离式的部署在三台主机上测试性能
查看>>
PL/SQL Developer结合oracle精简客户端配置说明
查看>>
每次打开office里的word,自动出现安装配置
查看>>
Skype For Business online混合部署(二)--混合部署配置
查看>>
Dojo AMD介绍
查看>>
Rsync忽略文件夹或目录
查看>>
linux基础命令Ⅱ
查看>>
Linux下阻塞与非阻塞IO
查看>>
centos6-7 yum安装php的方法
查看>>
No result defined for action
查看>>
Linux下批量管理工具PSSH
查看>>
打印hibernate的SQL语句的几种办法
查看>>
nginx 高级配置示例.
查看>>