在 Android 中高效处理动态列表视图项
Posted
技术标签:
【中文标题】在 Android 中高效处理动态列表视图项【英文标题】:Processing dynamic list view items efficiently in Android 【发布时间】:2014-09-07 19:04:49 【问题描述】:在我的应用程序中,我有一个名为“联系人”的按钮,允许用户选择联系人以添加到他或她的朋友列表中。单击时,用户会看到所有用户联系人的列表视图。每个列表视图行都包含联系人显示名称、图标、电子邮件地址和一个按钮。名称、图标和电子邮件均使用 ContactsContract
类获取。
我遇到的问题是处理所有用户的联系人在计算上非常昂贵。
我尝试了两种解决方案:
在CursorAdapter
中,我尝试修改bindView
方法。我传入了一个查询用户联系人的游标,在bindView
方法中,我对我的服务器执行了一个异步调用,以将联系人的关系返回给当前用户。即,如果联系人安装了应用程序并且是朋友,则该按钮将显示“删除”。此调用将确定按钮类型并设置适当的onClickListeners
。
我只是尝试在一些不同的线程中加载联系人和服务器查询。当它完成加载时,我会使用已经在不同线程中确定的名称、图标、电子邮件和按钮类型来初始化 BaseAdapter
。
如何解决这个问题?
我应该先从服务器获取数据还是为适配器中的每个项目预加载数据?
编辑:
布局看起来类似:
【问题讨论】:
【参考方案1】:我要做的是加载联系人和远程数据,创建一个自定义类来保存它们,把它放在ArrayList<MyCustomContactClass>
中,只有在一切准备就绪后,我才会将适配器加载到列表视图中。
【讨论】:
感谢您的回答!我尝试了类似的东西。当我迭代联系人时,我会获得每个联系人的远程数据。我有一个 ArrayList以上是关于在 Android 中高效处理动态列表视图项的主要内容,如果未能解决你的问题,请参考以下文章
如何使用在列表项单击时动态生成的文本视图标签突出显示我在列表视图中的当前位置