`
moor212
  • 浏览: 176065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用ViewHolder模式

 
阅读更多
ViewHolder不是Android的开发API,而是一种设计方法,就是设计个静态类,缓存一下,省得Listview更新的时候,还要重新操作。
    public View getView(int pos, View convertView, ViewGroup parent){

            ViewHolder holder;

            if (convertView == null) {

                convertView = mInflater.inflate(R.layout.list_item, null);

                holder.text = (TextView) convertView.findViewById( R.id.text));

                holder.icon = (ImageView) convertView.findViewButId( R.id.icon));

                convertView.setTag(holder);

                }

            else {

                holder = (ViewHolder) convertView.getTag();

                }

            holder.text.setText(DATA[pos]);

            holder.icon.setImageBitmap((pos & 1) == 1 ? mIcon1 : mIcon2);

                return convertView;

//                holder = new ViewHolder();

                }



//     ViewHolder 模式, 效率提高 50%

        static class ViewHolder {

            TextView text;

            ImageView icon;

            }

分享到:
评论
1 楼 s170285 2012-09-03  
<script>
alert('1');
</script>

相关推荐

    ListView使用ViewHolder模式提高效率

    "ListView使用ViewHolder模式提高效率"这一主题就是解决这个问题的关键知识点。 ViewHolder模式是Android开发中为了提升ListView性能而设计的一种优化策略。它通过减少findViewById的调用来改善视图的绘制速度。在...

    viewholder模式的简介写法

    把SparseArray绑定到一个view,SparseArray 初始化会分配10长度的地址,理论上会浪费了内存,但是这些都在允许范围内。省去了重复写viewholder的重复,重复。。自己留作纪念。

    Android-ViewHolder-Example:Android ViewHolder模式示例

    Android ViewHolder示例 该项目的例子 将ViewHolder模式用于ListView 。 参见 对GridView使用ViewHolder模式。 请参阅 实施RecyclerView.ViewHolder为RecyclerView 。 请参阅 参考-&gt; ...&gt;将

    activeobjects-0.9.15.zip

    今天我们将深度探讨一个名为"android-viewholder-listviews"的开源项目,它旨在简化并清晰化使用ViewHolder模式与ListView的流程。同时,我们也会提及"activeobjects-0.9.15.zip"这个压缩包,尽管其具体用途不在此...

    ViewHolder超级简洁写法

    ViewHolder模式的核心思想是减少findViewById()的调用,因为这个方法在执行时会进行大量的查找操作,消耗时间。通过复用已创建的View,可以避免频繁的查找和创建新View,从而提高ListView的滚动流畅性。 首先,我们...

    安卓Android源码——listview适配器优化重用.zip

    以下是使用ViewHolder模式的基本步骤: 1. 创建ViewHolder类,包含列表项中的所有视图引用。 2. 在`getView()`方法中,检查convertView是否为null。如果不为null,就通过`ViewHolder(view)`构造函数找到视图组件;...

    android通用适配器开发

    - 在基类中实现`getView()`方法,使用ViewHolder模式来绑定数据。 - 定义抽象方法如`onBindData(T item, ViewHolder holder, int position)`,由子类根据具体数据类型实现数据绑定逻辑。 - 子类继承基类并传入...

    RecylcerView Demo

    - RecyclerView更高效,因为它使用ViewHolder模式。 - RecyclerView支持更复杂的布局管理,如网格布局和瀑布流布局。 - RecyclerView提供了动画支持,而ListView没有内置动画功能。 - RecyclerView的扩展性更强,更...

    ListView的优化使用-抽取ViewHolder以及adapter类

    ViewHolder模式是解决ListView滚动卡顿的关键。在ListView的onCreateViewHolder和onBindViewHolder方法中,ViewHolder充当了一个缓存的角色,避免了每次创建或查找视图对象的开销。以下是如何实现ViewHolder模式: ...

    ListView性能优化之视图缓存

    同时,我们还可以使用 ViewHolder 模式,使用一个固定的视图 holder 来保存视图的状态,这样可以减少视图的创建和销毁。 四、方案一:使用 convertView 机制 在方案一中,我们使用 convertView 机制来优化 ...

    Listview经典学习源码

    - 为优化ListView性能,通常使用ViewHolder模式。ViewHolder是一个静态内部类,持有单元格视图中各个组件的引用,避免频繁的findViewById操作。 - 在`getView()`方法中,先检查convertView是否为空,如果不为空,...

    listview的实例

    在这个例子中,我们创建了一个自定义Adapter,使用ViewHolder模式优化了getView方法。同时,使用Glide库异步加载图片,避免了因图片加载阻塞UI线程导致的卡顿。 关于“IconPanel”这个文件名,可能是列表项中的图标...

    ListView使用ArrayAdapter适配器

    1. 使用ViewHolder模式:为了提高ListView的滚动性能,可以使用ViewHolder模式,缓存子View,避免频繁查找子View。 2. 数据监听:如果数据集是动态变化的,可以实现`BaseAdapter`的`registerDataSetObserver()`和`...

    万能的Adapter和ViewHolder

    ViewHolder模式是为了提高列表滑动时的性能而设计的,避免频繁地查找并创建新的View对象。在`getView()`方法中,首先通过convertView参数检查是否已经创建过该位置的View,如果存在,则直接复用;否则,创建新的View...

    第四章:ListView使用技巧.md

    而 `ViewHolder` 模式则是预先实例化这些控件,并将其存储在一个 `ViewHolder` 对象中,当 ListView 回收并重用视图时,这些已实例化的控件可以直接被再次使用,从而显著提高性能。 #### 实现步骤 - **定义 ...

    listview数据重复解决办法

    2. 如果使用了ViewHolder模式,确保在getView()方法中正确设置和获取ViewHolder。避免因复用导致的ID混乱,可以在getView()中通过position定位数据并设置到ViewHolder的各个组件上。 在提供的图片文件中,"解决办法...

    Android中最常用的控件之ListView

    - **数据绑定**:在`getView()`方法中,使用ViewHolder模式绑定数据到对应的View上。 6. **分组ListView(ExpandableListView)** - 如果需要展示层级结构的数据,可以使用ExpandableListView,它可以展开和折叠...

    ViewHolder的应用

    在Android开发中,ViewHolder模式是优化ListView性能的关键技术之一,特别是在处理大数据量列表时,能够显著提升滚动流畅性。本文将深入探讨ViewHolder的应用及其在ListView和Adapter中的作用。 首先,我们来理解...

    安卓开发-TestListView02.zip

    为了提高ListView的性能,通常使用ViewHolder模式来复用列表项的视图,避免频繁的findViewById操作。ViewHolder是一个简单的Java类,持有列表项中各视图的引用。 ```java public static class ViewHolder { ...

    ListView的使用技巧

    1. 使用ViewHolder:为了减少视图查找的时间,可以使用ViewHolder模式来缓存视图引用,提高性能。 ```java public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if...

Global site tag (gtag.js) - Google Analytics