• Android ListView 的基本应用,包括缓存


    class MyAdapter extends BaseAdapter {
            //返回要显示的条目的数量
            @Override
            public int getCount() {
                return list.size();
            }
     
            //获取条目
            @Override
            public Object getItem(int position) {
                return list.get(position);
            }
     
            //获取条目的id
            @Override
            public long getItemId(int position) {
                return 0;
            }
     
            //返回一个view对象,会作为listView的一个条目显示在界面上
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View v = null;
                ViewHolder mHolder = null;
                if (convertView == null) {   //如果缓存为空,则重新填充布局文件
                    v = View.inflate(AddMerryActivity.this, R.layout.list_item_merry, null);  //采用填充的方式
                    //创建ViewHolder,封装所有条目使用的组件
                    mHolder = new ViewHolder();
     
                    mHolder.tv_time = (TextView) v.findViewById(R.id.time_merry);  //时间
                    mHolder.tv_content = (EditText) v.findViewById(R.id.content_merry); //内容
    //                mHolder.siv = (SmartImageView) v.findViewById(R.id.head_merry);  //头像
                    //将ViewHolder封装至View对象中,这样View被缓存时,ViewHolder也被缓存了
                    v.setTag(mHolder); //设置一个标签,将一个对象存到View中,是一个Object类型
                } else {   //如果缓存不为空,直接调用缓存
                    v = convertView;   //convertView 缓存的条目
                    //从View中取出保存的ViewHolder,ViewHolder中就有所有组件对象,不需要再去findViewById
                    mHolder = (ViewHolder) v.getTag();
                }
                // 改变每个条目显示的内容,找到布局文件中对应的组件
                mHolder.tv_time.setText(textTime.getText().toString());
                mHolder.tv_content.setText(editContent.getText().toString());
    //            mHolder.siv.setImageUrl("head_portrait");
                return v;
            }
        }
     
        //把条目需要使用到的所有组件封装到这个类中
        class ViewHolder {
            TextView tv_time;
            EditText tv_content;
    //        SmartImageView siv;
        }
  • 相关阅读:
    三、springcloud之服务调用Feign
    二、springcloud之熔断器hystrix
    AngularJS中ng-class使用方法
    js中字符串的常用方法
    js中数组的操作
    Linux生成私钥和公钥免密连接
    Jenkins部署码云SpringBoot项目到远程服务器
    Jenkins部署码云SpringBoot项目
    ELK日志分析方案
    Vue项目History模式404问题解决
  • 原文地址:https://www.cnblogs.com/tyzl/p/5452879.html
Copyright © 2020-2023  润新知