zoukankan      html  css  js  c++  java
  • 关于ListView滑动之后重复加载的问题

    使用listview的缓存,将控件缓存之后。如果在if语句里将要设置的控件的值缓存,滑动之后会出现重复加载的问题。

    目前在网上看大概有2种解决方案

    1、不用缓存影响效率

    public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            convertView = LayoutInflater.from(context).inflate(
                    R.layout.menu_finaldish, null);
            TextView dishname = (TextView) convertView// 显示菜的名称
                    .findViewById(R.id.finaldish_name);
            TextView dishprice = (TextView) convertView// 显示菜的价格
                    .findViewById(R.id.finaldish_price);
            TextView dishdiscount = (TextView) convertView// 显示菜的折扣
                    .findViewById(R.id.finaldish_discount);
            TextView dishnum = (TextView) convertView// 显示菜的份数
                    .findViewById(R.id.finaldish_num);
            TextView dishlittlesum = (TextView) convertView//显示菜的小计
                    .findViewById(R.id.finaldish_littlesum);
    
            dishname.setText(finaldishlist.get(position).getName());
            dishprice.setText(Double.toString(finaldishlist.get(position)
                    .getPrice()));
            dishdiscount.setText(Double.toString(finaldishlist.get(position)
                    .getDiscount()));
            dishnum.setText(Integer.toString(finaldishlist.get(position).getNum()));
            dishlittlesum.setText(Double.toString(finaldishlist.get(position).getLittlesum()));
            return convertView;
        }

    2、使用缓存,将赋值写在if语句外面

    public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder = null;
            if (convertView == null) {
                convertView = layoutInflater.inflate(R.layout.listitem1, null);
                viewHolder = new ViewHolder();
                viewHolder.textView = (TextView) convertView
                        .findViewById(R.id.textview1);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            viewHolder.textView.setText(lists.get(position).getBuscirclename());
            viewHolder.textView.setTextColor(Color.BLACK);
            return convertView;
        }

      

  • 相关阅读:
    js学习笔记之标准库
    js学习笔记
    html5学习
    C#调用win32 api程序实例
    javascript计算字符串中出现最多的字符和个数
    javascript中的promise和deferred:实践(二)
    jquery animate 详解
    jquery animate stop函数解析
    javascript继承的写法
    css3 改变滚动条样式
  • 原文地址:https://www.cnblogs.com/snowspace/p/3293167.html
Copyright © 2011-2022 走看看