自定义适配器

来源:互联网 发布:百度软件助手 skype 编辑:程序博客网 时间:2024/06/06 06:44

 直接上代码://传对象

    public class MessageBean{

      int Icon;             //想实现一张图片,配一个标题和一段文字说明

      String title;

      String content;

    }


 public class MyAadapter extends baseAdapter{

    private ArrayList<MessageBean> list = new ArrayList<>();

    LayoutInflater layoutInflater ;

 public MyAdapter(Context context,ArrayList<MessageBean> list){

    layoutInflater=LayoutInflater.from(context);

    this.list=list;

  }

 @Override public int getCount() {    return list.size();  } @Override public Object getItem(int position) {    return list.get(position);  } @Override public long getItemId(int position) {    return position; }

public View getView(intposition,View convertView,ViewGroupparent){

   ViewHolder viewHolder;

   if (convertView==null){

      convertView=layoutInflater.inflate(R.layout.item_listView_style,null) ; 

      //第一次优化代码

   ImageView iconImg = (ImageView) convertView.findViewById(R.id.list_img);   TextView titleTxt = (TextView) convertView.findViewById(R.id.list_title);   TextView contentTxt = (TextView) convertView.findViewById(R.id.list_text1);
   //第二次优化代码 用viewHolder暂时保存,避免运行是重复加载,导致内存溢出
   viewHolder=new ViewHolder();   viewHolder.iconImg=iconImg;   viewHolder.titleTxt=titleTxt;   viewHolder.contentTxt=contentTxt;
   
   convertView.setTag(viewHolder);      

     }

     viewHolder=(viewHolder)convertView.getTag();

     MessageBean messageBean = (MessageBean)getItem(position);

     viewHolder.iconImg.setImageResourse(messageBean.getIconImg());

     viewHolder.titleTxt.setText(messageBean.gettitleTxt());

     viewHolder.contentTxt.setText(messageBean.getcontentTxt());

     return convertView;  

     }

  public class ViewHolder{

       imageView icon;

       textView title;

       textView content;

   }

}

       然后再写一个数据源

         public arrayList GetData(){

               private ArrayList<MeaasgeBean> data = new ArrayList<>();


               MessageBean item= new MessageBean;

               item.seticonImg(R.mipmap.mao1);

               item.settitleTxt("标题");

               item.setcontentTxt("内容描述");

               data.add(item);  

         

               item= new MessageBean;

               item.seticonImg(R.mipmap.mao1);

               item.settitleTxt("标题");

               item.setcontentTxt("内容描述");

               data.add(item);

              

                

               item= new MessageBean;

               item.seticonImg(R.mipmap.mao1);

               item.settitleTxt("标题");

               item.setcontentTxt("内容描述");

               data.add(item);


               

               item= new MessageBean;

               item.seticonImg(R.mipmap.mao1);

               item.settitleTxt("标题");

               item.setcontentTxt("内容描述");

               data.add(item);              

         }



        这样,最不好写的适配器和数据源都写好了,然后直接拿来用就行了

       

0 0
原创粉丝点击