android listview加载数据慢,Android加载数据ListView优化内存实现

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

问题分析

//有多少个条目被显示,这个方法就会被调用多少次

@Override

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

View view;

ViewHolder holder;

//1.减少内存中view对象创建的个数(优化listView,避免内存溢出)

if(convertView==null){

Log.i(TAG,"创建新的view对象:"+position);

//把一个布局文件转化成 view对象。

view = View.inflate(getApplicationContext(),R.layout.list_item_callsms,null);

//2.减少子孩子查询的次数 内存中对象的地址。

holder = new ViewHolder();

holder.tv_number = (TextView) view.findViewById(R.id.tv_black_number);

holder.tv_mode = (TextView) view.findViewById(R.id.tv_block_mode);

holder.iv_delete = (ImageView) view.findViewById(R.id.iv_delete);

//当孩子生出来的时候找到他们的引用,存放在记事本,放在父亲的口袋

view.setTag(holder);

}else{

Log.i(TAG,"厨房有历史的view对象,复用历史缓存的view对象:"+position);

view = convertView;

holder = (ViewHolder) view.getTag();

//通过封装成对象的方式性能优化5%,很小,这里不给出Holder类,不如内存地址复用效果显著

}

holder.tv_number.setText(infos.get(position).getNumber());

String mode = infos.get(position).getMode();

//删除事件响应,这里留着以后用

holder.iv_delete.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

AlertDialog.Builder builder = new Builder(CallSmsSafeActivity.this);

builder.setTitle("警告");

builder.setMessage("确定要删除这条记录么?");

//DialogInterface接口类方法

builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,int which) {

//删除数据库的内容

dao.delete(infos.get(position).getNumber());

//更新界面。

infos.remove(position);

//通知listview数据适配器更新

adapter.notifyDataSetChanged();

}

});

builder.setNegativeButton("取消",null);

builder.show();

}

});

return view;

}

实现方法看代码分析。顺便提一下,代码中有删除操作代码,重点看在增加删除后数据如何更新到ListView中的,就是adapter.notifyDataSetChanged()方法。

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值