zoukankan      html  css  js  c++  java
  • 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;
        }
  • 相关阅读:
    AngularJS之开发组件的一些思路
    [译]React Context
    前端好玩技术中转站
    《JavaScript高级程序设计》笔记整理
    React-Router学习整理
    AngularJS中的模板安全与作用域绑定
    React问题总结与归纳
    AngularJS中的按需加载ocLazyLoad
    AngularJS+Node的RESTful之基本实现
    AngularJS中的指令
  • 原文地址:https://www.cnblogs.com/tyzl/p/5452879.html
Copyright © 2011-2022 走看看