代码之家  ›  专栏  ›  技术社区  ›  Jainendra

bindView()和newView()在CursorAdapter中的作用

  •  25
  • Jainendra  · 技术社区  · 13 年前

    我有个习惯 CursorAdaptor 在我的项目中使用重写的方法 bindView(View view, Context context, Cursor cursor) newView(View view, Context context, Cursor cursor) 。 我想知道什么 CursorAdapter 用于,重写的区别和用途是什么 bindView() newView()

    我已经阅读了 Developer Site this 教程,但我仍然不明白。由于我是安卓系统的初学者,请帮助我理解这个概念。

    1 回复  |  直到 13 年前
        1
  •  126
  •   Ped7g    9 年前

    为了理解这一点,你必须首先了解 BaseAdapter 工作,因为 CursorAdapter 是的子类 底座适配器

    Android为 ListView 它将提供给您,以便您可以重用它,而不是每次都创建一个新的视图。

    在里面 底座适配器 ,您将有一个名为 getView() ,其中一个参数是 View 名为的对象 convertView 。基本上,这个 convertView(转换视图) 将是 null 如果是第一次加载列表,则不会 无效的 一旦你开始滑动列表。因此,在 获取视图() 你的方法 底座适配器 ,您将检查 convertView(转换视图) 无效的 。如果是,您将对其进行膨胀。然后您可以使用该视图并将其元素设置为正常。这将极大地提高列表视图的滚动性能。

    A. 游标适配器 使列表视图的数据源为数据库时易于使用。然而,在游标适配器中,Android负责检查 convertView(转换视图) 无效的 或者不。在 newView() 方法,只需对视图进行膨胀并返回即可 bindView() 方法,您可以设置视图的元素。

    例如,想象一个设备上的列表视图,它可以在屏幕上显示多达11个列表项。在这种情况下, 新建视图() 将被调用多达11次。然而 bindView() 无论何时滚动列表视图,都会被调用多次。滚动列表时,您在newView方法中创建的11个视图将被反复使用。