Adapter的优化

注:如果想要更新列表的话要加入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;

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

              }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值