在我的应用程序中,我有一个名为“联系人”的按钮,允许用户选择要添加到其朋友列表的联系人。单击时,将向用户显示所有用户联系人的列表视图。每个列表视图行包含联系人显示名称,图标,电子邮件地址和按钮。名称,图标和电子邮件都是使用ContactsContract
类获取的。
我遇到的问题是处理所有用户的联系人的计算成本非常高。
我尝试了两种解决方案:
在CursorAdapter
中,我尝试修改bindView
方法。我传入一个查询用户联系人的游标,在bindView
方法中,我执行了对我的服务器的异步调用,以将联系人的关系返回给当前用户。即如果联系人安装了应用并且是朋友,该按钮将显示“删除”。此调用将确定按钮类型并设置相应的onClickListeners
。
我只是尝试在一些不同的线程中加载联系人和服务器查询。当它完成加载时,我会使用已在不同线程中确定的名称,图标,电子邮件和按钮类型初始化BaseAdapter
。
如何解决此问题?
我应该首先从服务器获取数据还是为适配器中的每个项目预加载数据?
修改
布局看起来与类似:
答案 0 :(得分:0)
我要做的是加载联系人和远程数据,创建一个自定义类来保存它们,将它放在ArrayList<MyCustomContactClass>
内,并且只有在它准备就绪之后我才会将adaptar加载到listview中