gpt4 book ai didi

Android:快速查找联系人列表

转载 作者:搜寻专家 更新时间:2023-10-30 20:45:07 24 4
gpt4 key购买 nike

我目前正在开发一个应用程序,需要通过他们的电话号码查找多个联系人(姓名和照片)。但是,这需要几秒钟的时间(对于每个联系人:通过他们的电话号码查找联系人,获取联系人的姓名和照片)。

加快这个过程的好策略是什么?我意识到我可以使用我自己的 sqlite 数据库,其中包含我需要的那些名字和照片的列表。使用这样的数据库,我只能进行一次查询,然后立即获取我需要的所有联系人的数据。然而,这会增加一些我希望避免的开销。

是否有更好(说:更简单)的解决方案?

谢谢。

最佳答案

例如,您可以使用 CursorAdapter 并覆盖 bindView() 方法:

@Override
public void bindView(final View view, Context context, final Cursor cursor) {
holder = (ItemHolder) view.getTag();
ImageView icon = holder.getImageView();
TextView name = holder.getName();
final TextView email = holder.getEmail();
icon.setBackgroundResource(R.drawable.contact_icon);
name.setText(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));


final int contactid = cursor.getInt(cursor.getColumnIndex("_id"));
mHandler.post(new Runnable() {

@Override
public void run() {
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, "contact_id=?", new String[]{String.valueOf(contactid)}, null);
startManagingCursor(emailCursor);
// Log.i("cursor:", emailCursor.getCount()+"");
if(emailCursor!=null){

if(emailCursor.getCount()==0){
email.setText("");
}else {
while(emailCursor.moveToNext()){
String emails = emailCursor.getString(emailCursor.getColumnIndex("data1"));
email.setText(emails);
}
}

}
emailCursor.close();
}
});

您将使用 ContactsContract.CommonDataKinds.Phone.CONTENT_URI 而不是 ContactsContract.CommonDataKinds.Email.CONTENT_URI。

关于Android:快速查找联系人列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4605130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com