android listView 重写Adapter方法getView的性能优化问题

1.为什么要重写Adapter 的getView方法

     为什么要重写getView方法 可以看这里  android listView滚动时checkBox的状态不会保存的问题   

2.在哪个地方会有性能问题

拿出  android listView滚动时checkBox的状态不会保存的问题  这里的getView方法里的代码看下就会明白了

 @Override  
    public View getView(final int position, View convertView, ViewGroup parent) {  
        // TODO Auto-generated method stub  
  
        LayoutInflater mInflater = LayoutInflater.from(context);  
        //每次调用 都实例化layout 效率非常低  ,而且每次在下面都创建了好几个View
        convertView = mInflater.inflate(R.layout.user_list, null);  

        ImageView imgUserImg = (ImageView) convertView.findViewById(R.id.imgUserImg);  
        imgUserImg.setBackgroundResource((Integer) listData.get(position).get("imgUserImg"));            
        TextView tvUserName = (TextView) convertView.findViewById(R.id.tvUserName);  
        tvUserName.setText((String)listData.get(position).get("tvUserName"));  
          
        Log.d("getView", (String)listData.get(position).get("tvUserName"));  
          
        TextView tvUserMoney = (TextView) convertView.findViewById(R.id.tvUserMoney);  
        tvUserMoney.setText(String.valueOf(listData.get(position).get("tvUserMoney")));  
          
        CheckBox check = (CheckBox) convertView.findViewById(R.id.ckUser);  
         。。。。。。

以上代码你会发现:每次加载item的时候,都要加载一下布局文件,然后生成一个新的convertView View对象,然后通过View找到对应的ImageView和TextView,正如我们所知道的那样,加载布局文件时很耗时的,特别是在操作比较频繁 情况下,这是不可忍受的,所以会导致ANR现象。

3.listView工作原理

ListView的工作原理如下</

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值