【问题标题】:When getView() in ArrayAdapter is called调用 ArrayAdapter 中的 getView() 时
【发布时间】:2012-04-15 08:08:03
【问题描述】:

在android中为ListView创建自定义adapter时,我看到我必须创建一个扩展ArrayAdapter类的类并实现getView(..)方法。

所有这些都可以,但是我想知道调用方法和执行的顺序。即getView()在哪个代码点被调用?

【问题讨论】:

  • 参考这个LINK它有CustomAdapter和示例代码的清晰和净解释

标签: java android layout adapter android-arrayadapter


【解决方案1】:

多次调用ArrayAdapter的getView()....

  1. 添加新行时...
  2. 您向上滚动和向下滚动列表视图....
  3. 当列表未更改时..

参考这个链接 Android custom ArrayAdapter getView method called multiple times - resetting dynamic TextView value

【讨论】:

    【解决方案2】:

    来自 android 文档 - Adapter 对象充当 AdapterView (例如您的情况下的 ListView )和该视图的基础数据之间的桥梁。 Adapter 提供对数据项的访问,还负责为数据集中的每个项创建一个视图。

    所以,每当 ListView 需要显示某一行数据时,它都会通过 getView() 方法请求关联的适配器提供与该位置的数据对应的视图。每当需要在屏幕上更新视图时(例如,在创建/滚动等期间),都可能发生这种情况。

    作为应用程序开发人员,只要您在适配器中提供具体的 getView() 实现,您就不必担心究竟在什么时候调用 getView()。确保该方法有效(缩略图等应在后台线程中加载)以获得最佳性能。

    【讨论】:

    • 你怎么有胆量告诉提问者他不需要担心理解他使用的东西是如何工作的?
    【解决方案3】:
    getView(int position, View view, ViewGroup parent) 
    

    被称为

    List of Objects
    

    使用的元素个数

    getItem(int position)
    

    我们列表的长度

    所以,直到你的整个列表被分配了一个布局和列表中的数据,它被称为次数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多