【问题标题】:BaseAdapter or ArrayAdaptor - AndroidBaseAdapter 或 ArrayAdaptor - Android
【发布时间】:2010-07-28 12:23:27
【问题描述】:

我将制作一个图像网格,并试图弄清楚是使用数组适配器还是基本适配器。 GridView example 将数据存储在数组中,但它使用 BaseAdapter 而不是 ArrayAdaptor。我很好奇这是为什么。我注意到关于 ArrayAdapter 的一件事是,它的构造函数出于某种未知原因采用了 textViewResourceId - 尽管文档说 getView 也可用于使其与其他类型的视图一起使用。那么,如果我想要一个固定的菜单图像网格,你会推荐选择哪个类?

【问题讨论】:

    标签: android


    【解决方案1】:

    您通常会根据模型数据的内容来选择适配器类。如果您有 ArrayList 的对象,请使用 ArrayAdapter。如果您有来自数据库查询的Cursor,请使用CursorAdapterBaseAdapter 可以用于任何事情,但它需要更多的编码,因为它不知道如何迭代数据。

    【讨论】:

    • 如果我使用ArrayAdaptor,鉴于我使用的是图像而不是文本,我该如何处理textViewResourceId
    • @Casebash:忽略它,覆盖getView(),然后返回你需要的东西。
    • 但是你必须传递一些东西。0 可以工作还是 -1 更好?
    • 这有点晚了,但我注意到当应用于网格视图时,非常大的数据集和 ArrayAdapter 存在一些效率问题。用扩展的 BaseAdapter 替换 ArrayAdapter 解决了我在尝试显示数千张图像列表时遇到的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多