ListView之ViewHolder模板

    private List<SomeModel> modelLists = null;

    private class MyListSomeModelAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return modelLists.size();
        }

        @Override
        public Object getItem(int position) {
            return modelLists.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {

            ViewHolder viewHolder = null;

            if(convertView == null){
                convertView = View.inflate(context, R.layout.some_item_view, null);

                viewHolder = new ViewHolder();

                viewHolder.tvNum1 = (TextView) convertView.findViewById(R.id.tv_num1);

                viewHolder.tvNum2 =  (TextView) convertView.findViewById(R.id.tv_num2);

                convertView.setTag(viewHolder);
            }else{
                viewHolder = (ViewHolder) convertView.getTag();
            }

            viewHolder.tvNum1.setText(modelLists.get(position).getNum1());

            viewHolder.tvNum2.setText(modelLists.get(position).getNum2());

            return convertView;
        }

    static class ViewHolder{
        TextView tvNum1;
        TextView tvNum2;
    }
时间: 2024-10-16 16:45:09

ListView之ViewHolder模板的相关文章

ListView优化-ViewHolder缓存

安卓开发中ListView控件是一个使用频率相当的高级控件,通常用于展示一系列相似度极高的数据,当数据量极大或布局相当复杂时,ListView的性能优化就显得非常重要.所以在开发中不但功能上要满足,而且在性能上也不能马虎.        使用ListView是一个标准的适配器设计模式,ListView把数据.XML布局和Adapter有极地结合在一起完成一系列的展示功能.在ListView的数据展示中,每次滑动ListView都会触发getView()方法的调用,并且XML定义的布局是在也是在适

listview的ViewHolder优化

1.自定义listview,首先在activity.xml中插入一个listview,可以用android:divider=""设置分割线颜色样式,android:dividerHeight=""设置分割线高度. 2.新建viewholder_item.xml设计每行Item显示的样式布局. 3.自定义Adapter(继承BaseAdapter),定义一个内部类ViewHolder,并将布局中的控件作为成员变量.如: public final class ViewH

Android:ListView之ViewHolder

前言 在开发Android应用过程中经常要与列表展示打交道,比如Listview.在使用过程中如果不能正确的进行细节处理那么对性能还是有很大的损耗的. Listview展示内容是通过一个Adapter来进行内容绑定的.如下所示: 1 class Adapter implements ListAdapter{ 2 3 @Override 4 public void registerDataSetObserver(DataSetObserver observer) { 5 6 } 7 8 @Over

listview用ViewHolder存储控件,避免多次创建寻找空间资源,PopupWindow的使用。

1.listview写Adapater时候在getview里,用局部定义的view加载的xml后调用findviewbyid(),在oncreate()里调用findviewById时候由于activity往往没有加载listview要加载的Item.xml因此找到的其实为null,从而导致错误. 2.popupwindow为类成员时候,在oncreate里只能定义一个”空“的popuwindow,即用new PopupWindow(),经测试在oncreate()方法里给popupWindow

ListView优化-ViewHolder的优化备份

ViewHolder.java package cn.edu.bzu.util; import android.content.Context; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.wid

Android性能优化之Listview(ViewHolder重用机制)

相信大家在很多时候都会用到ListView这个控件,因为确实是用的很多很多,但是有木有遇到过当数据很多很多的时候,往下滑ListView时有时候会卡顿,这就需要我们来优化它了. ListView优化主要有下面几个方面: 1.convertView重用 2.ViewHolder的子View复用 3.缓存数据复用 一.convertView重用 首先讲下ListView的原理:ListView中的每一个Item显示都需要Adapter调用一次getView()的方法,这个方法会传入一个convert

listView 利用viewholder进行优化

ListView优化:通过convertView+ViewHolder来实现,ViewHolder就是一个静态类,使用 ViewHolder 的关键好处是缓存了显示数据的视图(View),加快了 UI 的响应速度. 当我们判断 convertView == null  的时候,如果为空,就会根据设计好的List的Item布局(XML),来为convertView赋值,并生成一个viewHolder来绑定converView里面的各个View控件(XML布局里面的那些控件).再用convertVi

ListView中数据模板内的自定义按钮

下面介绍一个小例子了解自定义按钮如何使用: .aspx代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="自定义按钮.aspx.cs" Inherits="自定义按钮" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt

Listview和RecyclerView区别

1 Listview中ViewHolder是需要自定义的,在RecyclerView中ViewHolder是谷歌已经封装好的 2 Listview中的Item是只能垂直滑动的,RecyclerView可以水平滑动或者垂直滑动,针对多种类型条目的展示效果,如瀑布流 网格 支持多种类型 3 Listview中删除或添加item时,item是无法产生动画效果的,在RecyclerView中添加.删除或移动item时有两种默认的效果可以选择SimpleItemAnimator(简单条目动画) 和 Def