zoukankan      html  css  js  c++  java
  • Android BaseAdapter

    ListView显示与缓存机制:
         只会加载当前屏幕所要显示的数据。显示完成就会被回收到Recycler中。
     
     
     
    BaseAdapter 基本结构:
         public int getCount();     // 适配器中数据集中数据的个数
         public Object getIten(int position);     //获取数据集中与指定索引对应的数据项
         public long getItemId(int position);     //获取指定行对应的ID
         public View getView(int position,View convertView,ViewGroup parent);     //获取每一个Item的显示内容
     
     
    ViewHolder优化BaseAdapter:
              创建Bean对象,用于封装数据。
              在构造方法中初始化用于映射的数据LIST.
              创建ViewHolder类,创建布局映射关系。
              判断convertView,为空则创建,并设置TAG,否则通过TAG来取出ViewHolder
              给ViewHolder中的控件设置数据。
     
     
    public class Adapter extends BaseAdapter{
     
            private List<ItemBean> list ;
            private LayoutInflater inflater ;
           
            public Adapter(List<ItemBean> list,Context context){
                  list= this.list ;
                   //context要使用当前的Adapter的界面对象 minflater布局装载器对象
                   inflater=LayoutInflater. from(context);
           }
           
            @Override
            public int getCount() {
                   // TODO Auto-generated method stub
                   return list .size();
           }
     
            @Override
            public Object getItem(int position) {
                   // TODO Auto-generated method stub
                   return list .get(position);
           }
     
            @Override
            public long getItemId(int position) {
                   // TODO Auto-generated method stub
                   return position;
           }
     
            /**
            * 返回每一项所显示的内容
            */
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                  ViewHold viewHold;
                   if(convertView==null){
                         viewHold= new ViewHold();
                         convertView= inflater.inflate(R.layout. item, null );
                         viewHold .ima geView=(ImageView) convertView.findViewById(R.id.IVimage );
                         viewHold. title= (TextView) convertView.findViewById(R.id.title );
                         viewHold. content=(TextView) convertView.findViewById(R.id.text );
                         convertView.setTag(viewHold);
                  } else{
                         viewHold=(ViewHold) convertView.getTag();
                         
                  }
                  ItemBean bean= list.get(position);
                  viewHold. imageView.setImageResource(bean.getImageid());
                  viewHold. title.setText(bean.getTitle());
                  viewHold. content.setText(bean.getText());
                   return convertView;
           }
           
           
            class ViewHold{
                   public ImageView imageView ;
                   public TextView title ;
                   public TextView content ;
           }
    }
    stareblankly.cn
  • 相关阅读:
    记录一次腾讯云服务器进挖矿病毒的事故
    Django组件:django-simple-captcha 使用
    RabbitMQ延迟队列(Python版)
    RabbitMQ CLI 管理工具 rabbitmqadmin(管理)
    Django Rest Framework组件:用户访问次数/频率限制BaseThrottle
    GitLab 持续集成
    Windows10搭建Spark+Python开发环境
    Python 应用自动化部署工具Fabirc
    Prometheus:Prometheus开发中间件Exporter
    qs 和 headers: { "content-type": "application/x-www-form-urlencoded" }, data: qs.stringify(data) 必须同时设置
  • 原文地址:https://www.cnblogs.com/stareblankly/p/4844184.html
Copyright © 2011-2022 走看看