Adapter的优化

来源:互联网 发布:mac平时要关机吗 编辑:程序博客网 时间:2024/05/01 08:54

注:如果想要更新列表的话要加入adapter.notifyDataSetChanged();方法

优化方法:

1.将控件的声明写入一个自定义内部类中。

2.在getView方法中判断是否第一次执行,如果是第一次即convertView==null,则加载布局文件、设置控件。设置完成后将内部类对象通过convertView.setTag();方法存到convertView中。

3.如果不是第一次即convertView!=null,则通过convertView.getTag();方法获取到自定义内部类的的对象。

4.News item=list.get(position);获取到当前实体类的对象,并通过内部类对象设置控件

5.返回convertView

 

 

private Context context;

//需要List用于显示,LayoutInflater动态布局填充器用于加载布局文件,context用于初始化LayoutInflater

       private ArrayList<News>list;

       private LayoutInflaterinflater;

 

public View getView(int position, View convertView,ViewGroup parent) {

              HolderViewholderView;

              if(convertView==null){

                     convertView=inflater.inflate(R.layout.item_list_news,null);

                     holderView=new HolderView();

                     holderView.iv_pic=(ImageView)       convertView.findViewById(R.id.imageView_pic);

...............

convertView.setTag(holderView);

              }else{

                     holderView=(HolderView)convertView.getTag();

              }            

              Newsitem=list.get(position);

              holderView.iv_pic.setImageResource(item.getPic());

...............

              return convertView;

       }

              class HolderView{

              ImageViewiv_pic;

...............

              }

 

0 0