首页 > 数码 > 正文

Android中的view Android开发之ViewHolder学习笔记

导读 大家好,我是云百科的客服小柏,我来为大家解答以上问题。Android中的view,Android开发之ViewHolder学习笔记很多人还不知道,现在让我们一

大家好,我是云百科的客服小柏,我来为大家解答以上问题。Android中的view,Android开发之ViewHolder学习笔记很多人还不知道,现在让我们一起来看看吧!

解答:

1、 BaseAdapter继承Object并实现接口ListAdapter和SpinnerAdapter。它必须实现Adapter的四个抽象方法:getItem(int),getItemId(int),getCount(),getView(int,View,ViewGroup)

2、 一、初学者经常使用的方法。在方法中,视图容器不用于缓存视图。首先初始化视图对象,每次初始化getView方法中的视图对象。这将创建很多很多的实例,这可能会导致内存溢出和缓慢的数据更新。不推荐。代码如下:

3、 其次,使用ViewHolder,这是一个推荐的优化方案。在项目开发中,会在BaseAdapter子类中创建一个ViewHolder内部类或ViewHolder类,控件名会在ViewHolder类中声明。然后在getView方法中初始化一次,View对象初始化一次,控件引用赋给ViewHolder变量。代码如下:

4、 第三,原理与第二种方案相同。第一次加载可视视图时,缓存控件,以后每次加载时直接更新数据。但是findViewById方法用了很多次,性能比第一个差。让我们试一试。代码如下:

5、 三种方法中,现在推荐使用性能中的ViewHolder。第一步是定义内部类。第二步,判断convertView是否是第一次加载。如果是第一次加载,则初始化一次ViewHolder类,并设置ViewHolder属性值(将control声明为内部类属性)。否则,根据标签获取缓存的ViewHolder对象。分别为视图持有者属性设置值(即填充数据)。这里需要注意的是,如果使用setTag的标签有多个,则使用带参数使用setTag(mName,mView)的方法,比如第三种方案。

本文到此讲解完毕了,希望对大家有帮助。

免责声明:本文由用户上传,如有侵权请联系删除!

标签:

Copyright @ 2015 -2023 太行之窗 All Rights Reserved. 网站地图 | 百度地图 .