ListView中convertView和ViewHolder的工作原理
w和Adapter
- <span style="font-family:Microsoft YaHei;font-size:18px;color:#3366ff;"><strong>public class MultipleItemsList extends ListActivity {
- private MyCustomAdapter mAdapter;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mAdapter = new MyCustomAdapter();
- for (int i = 0; i < 50; i++) {
- mAdapter.addItem("item " + i);
- }
- setListAdapter(mAdapter);
- }
- private class MyCustomAdapter extends BaseAdapter {
- private ArrayList mData = new ArrayList();
- private LayoutInflater mInflater;
- public MyCustomAdapter() {
- mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- }
- public void addItem(final String item) {
- mData.add(item);
- notifyDataSetChanged();
- }
- @Override
- public int getCount() {
- return mData.size();
- }
- @Override
- public String getItem(int position) {
- return mData.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- System.out.println("getView " + position + " " + convertView);
- ViewHolder holder = null;
- if (convertView == null) {
- convertView = mInflater.inflate(R.layout.item1, null);
- holder = new ViewHolder();
- holder.textView = (TextView)convertView.findViewById(R.id.text);
- convertView.setTag(holder);
- } else {
- holder = (ViewHolder)convertView.getTag();
- }
- holder.textView.setText(mData.get(position));
- return convertView;
- }
- }
- public static class ViewHolder {
- public TextView textView;
- }
- }</strong></span>
参考资料:
http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html
http://www.eoeandroid.com/thread-72369-1-1.html
http://www.cnblogs.com/felix-hua/archive/2012/01/06/2314436.html
http://blog.csdn.NET/jacman/article/details/7087995
http://fatkun.com/2012/01/Android-viewholder.html
ListView中convertView和ViewHolder的工作原理相关推荐
- Java中的Annotation(2)----Annotation工作原理
上一篇文章已经介绍了如何使用JDK的三个标准Annotation,本文将介绍Annotation的原理,以及如何自定义Annotation,并利用Annotation来完成一些实际的功能. 定义Ann ...
- 关于SOCKET中send和recv函数工作原理总结
send函数工作原理: send函数只负责将数据提交给网络协议层. 当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲区的长度,如果len大于s的发送缓冲区的长度,该函数返回SO ...
- 消解原理推理_什么是推理统计中的Z检验及其工作原理?
消解原理推理 I Feel: 我觉得: The more you analyze the data the more enlightened, data engineer you will becom ...
- socket api中send()和recv()函数工作原理与要点
send()和recv()函数是网络编程中经常使用到的函数,下面详细的比较两者的不同之处 send函数工作原理: send函数只负责将数据提交给协议层. 当调用该函数时,send先比较待发送数据的长度 ...
- 面试中问的话题Spring工作原理
Spring工作原理 内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 反射其实就是在运行时动态的去创建.调用对象,Spring就 ...
- 从一个案例看MVC中DataContext和UpdateModel的工作原理(详解UpdateModel/SubmitChanges错误)...
昨天遇到一段棘手的程序,尝试了各种方法,忽而在SubmitChanges的时候没反应(无错误,也不更新),忽而发生ChangeConflict,经过几个小时,终于大致理清了思路,也顺便把DataCon ...
- zookeeper中展示所有节点_zookeeper工作原理与节点使用
目录 zookeeper集群的搭建: 配置解释: 特点: 常规搭建方式,进行操作: A.关闭防火墙(测试环境) B.启动 服务,每个规划的 zookeeper 节点都要进行启动 C.启动客户端 D.命 ...
- Vue3中key的作用和工作原理
这个key属性有什么作用呢?我们先来看一下官方的解释: key属性主要用在Vue的虚拟DOM diff算法中,在新旧nodes对比时辨识Vnodes: 如果不使用key,Vue会使用一种最大限度减少动 ...
- SAP Spartacus 中 Angular json pipe 的工作原理
源代码如下: <ng-template cxOutletRef="header" cxOutletPos="before" let-jerryvar> ...
最新文章
- uniapp自定义导航栏
- rest项目的基础返回类设计
- springboot:映射静态资源路径
- Nginx打开目录浏览功能(autoindex)以及常见问题解决方案
- 软件测试用例_通用测试用例执行软件
- QUIC技术创新 让视频和图片分发再提速
- 分析方法的基础 — 3. 业务与管理的特性,分析与设计的抓手
- 我的第一句__asm 语句[很简单]
- L2-011. 玩转二叉树
- C#配置IIS搭建网站的工具类
- 3.8Python数据处理篇之Numpy系列(八)---Numpy的梯度函数
- iOS:SideTable
- 关于KL距离(KL Divergence)
- png图像保存为yuv格式以及yuv格式转为png
- eNSP初学者配置以太网2种链路端口:access、trunk
- Ubuntu 重置密码
- Java jdt 编辑_java – 如何使用JDT以编程方式重命名方法
- 心、肝、脾、肺、肾的毒藏在哪,你知道吗?
- WIN10系统设置默认文件查看方式
- jdk api 1.8 -中文版