像安卓联系人屏幕一样的视图

3

我正在开发一个应用程序,其中有大量元素需要按字母顺序排序,并且我希望它具有与Android联系人列表相同的外观和感觉。

[Letter]
<contact>
<contact>
[Letter]
<contact>
<contact>
<contact>

哪种方法是实现相同布局的最佳方式?我看到过一些关于可滚动列表的教程,但这有点不同。我已经在安卓源代码中找了一些资料,但如果有人知道答案,那会节省我很多时间。
提前感谢。
1个回答

3
你可以使用我的MergeAdapter,直接使用它或作为创建自己的适配器的基础,以获得你想要的外观。
简而言之,你需要创建一个ListAdapter来处理你的联系人和标题。你可能需要为它们使用不同的视图,并覆盖ListAdapter中的方法告诉Android如何处理它们。你也可以选择声明标题是"未启用"的,这意味着它们不会响应选择或单击事件。

非常感谢。你是否知道有什么可以对你的代码进行重大性能改进的方法?它与我之前看过的这个非常相似:http://jsharkey.org/blog/2008/08/18/separating-lists-with-headers-in-android-09/我一开始有些担心使用它,因为它是在0.9版本发布时开发的,而且我担心它的使用和性能可能发生了很大变化,但是你的代码几乎比它早一年,并且遵循相同的思路。附注:我还不能投票 :( - Maragues
你是否意识到你的代码中可能存在的主要性能问题?我并没有意识到它存在性能问题。它比Sharkey先生的代码更新,但他的代码可能仍然有效。请注意,他的代码采用GPLv3许可证,这可能适用于您的项目,也可能不适用。我的代码采用Apache 2.0许可证。 - CommonsWare
抱歉如果我的表达有误,我并不是在批评你的工作,只是好奇是否有可能还有进一步的改进方案,但你还没有开发出来。再次感谢你的回答和关于许可证差异的建议,我会检查条件。 - Maragues
你是否知道有任何可能的改进但尚未开发出来?适配器方面并没有太多的内容。我可以看到一些MergeAdapter的变体,通过缓存一些计算结果可以提供更好的性能,但代价是无法动态更新内容(例如,在其中一个子适配器上调用requery())。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接