ListView使用ViewHolder模式提高效率
来源:互联网 发布:淘宝的消费总额怎么看 编辑:程序博客网 时间:2024/06/07 21:37
Listview的基本用法基本都熟练掌握,其中ViewHolder模式是提高Listview效率的一个很重要的方法。ViewHolder模式充分利用ListView的视图缓存机制,避免每次调用getView()的时候都去通过findViewById()实例化控件。据推测,使用View将提高50%以上的效率。
使用手续在自定义Adapter中定义一个内部类ViewHolder,并将布局中的控件作为成员变量,代码如下所示:
public final class ViewHolder { public ImageView img; public TextView title; }接下来,只有在getView()方法中通过视图缓存机制来重用以缓存即可,完整的使用ViewHolder创建LisetView Adapter的实例代码如下所示。
package com.imooc.myapplication;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.List;public class NotifyAdapter extends BaseAdapter { private List<String> mData; private LayoutInflater mInflater; public NotifyAdapter(Context context, List<String> data) { this.mData = data; mInflater = LayoutInflater.from(context); } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; // 判断是否缓存 if (convertView == null) { holder = new ViewHolder(); // 通过LayoutInflater实例化布局 convertView = mInflater.inflate(R.layout.notify_item, null); holder.img = (ImageView) convertView.findViewById(R.id.imageView); holder.title = (TextView) convertView.findViewById(R.id.textView); convertView.setTag(holder); } else { // 通过tag找到缓存的布局 holder = (ViewHolder) convertView.getTag(); } // 设置布局中控件要显示的视图 holder.img.setBackgroundResource(R.drawable.ic_launcher); holder.title.setText(mData.get(position)); return convertView; } public final class ViewHolder { public ImageView img; public TextView title; }}效果很简单,这就是一个简单的Listview
源码下载:http://download.csdn.net/detail/qq_31307919/9483454
1 0
- ListView使用ViewHolder模式提高效率
- 【Android UI】ListView使用ViewHolder模式提高效率
- ListView使用技巧之ViewHolder模式提高效率
- android群英传笔记——ListView常用优化技巧(一、使用ViewHolder模式提高效率)
- 使用ViewHolder模式优化ListView
- 使用ViewHolder模式优化ListView
- ListView 使用 ViewHolder
- ListView 使用 ViewHolder
- 使用ViewHolder优化ListView
- ListView 使用 ViewHolder
- ListView 使用 ViewHolder
- 聊天ListView使用ViewHolder
- 使用ViewHolder优化ListVIew
- 关于ListView使用ViewHolder
- android基础笔记——使用viewholder模式优化ListView
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- 64位win7系统中JDK的安装及环境变量的配置
- Android Studio常用插件
- Linux下undefined reference to ‘pthread_create’问题解决
- 浏览器、操作系统DNS缓存时间
- hdu1029 技巧
- ListView使用ViewHolder模式提高效率
- SQL实现Split功能
- 使用CHOOSE使用举例-动态排序字段
- 怎样批量修改MathType公式格式
- Android apk动态加载机制的研究
- Zookeeper实战之单机集群模式
- Hdu1533
- (OK) fedora23——add “opening terminal” in the menu of right click
- django 直接执行SQL