优化SimpleAdapter适配器加载效率的方法
发布时间 - 2026-01-11 00:42:15 点击率:次在主Activity中:
listview=(ListView)findViewById(R.id.listview);getData();
//为list添加数据overrideSimpleAdapter=new OverrideSimpleAdapter(getContext(),list,R.layout.list_item_layout,
new String[]{"num","word","translates"},
new int[]{R.id.tv_num,R.id.tv_word,R.id.tv_translates});
listview.setAdapter(overrideSimpleAdapter);
重写SimpleAdapter:/**
* Created by KewenC on 2017/1/26.
*/
public class OverrideSimpleAdapter extends SimpleAdapter {
/**
* Constructor
*
* @param context The context where the View associated with this SimpleAdapter is running
* @param data A List of Maps. Each entry in the List corresponds to one row in the list. The
* Maps contain the data for each row, and should include all the entries specified in
* "from"
* @param resource Resource identifier of a view layout that defines the views for this list
* item. The layout file should include at least those named views defined in "to"
* @param from A list of column names that will be added to the Map associated with each
* item.
* @param to The views that should display column in the "from" parameter. These should all be
* TextViews. The first N views in this list are given the values of the first N columns
*/
private LayoutInflater mInflater;
private ArrayList<Map<String, Object>> list;
private int mResource;
private int[] mTo;
private String[] mFrom;
public OverrideSimpleAdapter(Context context, ArrayList<Map<String, Object>> data, int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
this.list=data;
this.mInflater = LayoutInflater.from(context);
this.mResource = resource;
this.mFrom = from;
this.mTo = to;
}
@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;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
// 判断是否缓存
if (convertView == null) {
holder = new ViewHolder();
// 通过LayoutInflater实例化布局
convertView = mInflater.inflate(mResource, null);
// holder.img = (ImageView) convertView.findViewById(R.id.imageView);
holder.num = (TextView) convertView.findViewById(mTo[0]);
holder.word = (TextView) convertView.findViewById(mTo[1]);
holder.translates = (TextView) convertView.findViewById(mTo[2]);
convertView.setTag(holder);
} else {
// 通过tag找到缓存的布局
holder = (ViewHolder) convertView.getTag();
}
// 设置布局中控件要显示的视图
// holder.img.setBackgroundResource(R.drawable.ic_launcher);
holder.num.setText(list.get(position).get(mFrom[0]).toString());// mFrom[0]为“num”Key
holder.word.setText(list.get(position).get(mFrom[1]).toString());
holder.translates.setText(list.get(position).get(mFrom[2]).toString());
return convertView;
}
public final class ViewHolder {
// public ImageView img;
public TextView num;
public TextView word;
public TextView translates;
}
}
以上这篇优化SimpleAdapter适配器加载效率的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# simpleadapter适配器
# Android 适配器模式应用及设计原理
# 给大家
# 希望能
# 重写
# 这篇
# 小编
# 大家多多
# 判断是否
# 加载
# extends
# public
# param
# Constructor
# SimpleAdapter
# tv_word
# setAdapter
# tv_translates
# KewenC
# Created
# context
# entries
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何快速搭建虚拟主机网站?新手必看指南
Firefox Developer Edition开发者版本入口
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
LinuxShell函数封装方法_脚本复用设计思路【教程】
海南网站制作公司有哪些,海口网是哪家的?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在云主机快速搭建网站站点?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
简历在线制作网站免费版,如何创建个人简历?
如何在建站之星绑定自定义域名?
如何自定义建站之星网站的导航菜单样式?
JavaScript模板引擎Template.js使用详解
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何快速完成中国万网建站详细流程?
如何彻底卸载建站之星软件?
高端网站建设与定制开发一站式解决方案 中企动力
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
进行网站优化必须要坚持的四大原则
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
javascript基本数据类型及类型检测常用方法小结
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何基于云服务器快速搭建个人网站?
如何基于云服务器快速搭建网站及云盘系统?
手机软键盘弹出时影响布局的解决方法
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
EditPlus中的正则表达式实战(6)
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
如何在云主机上快速搭建网站?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
C语言设计一个闪闪的圣诞树
如何用PHP快速搭建高效网站?分步指南
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何快速配置高效服务器建站软件?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
php 三元运算符实例详细介绍

