在面试的时候经常会被问到一个有关ListView的问题:一个ListView的高度最多可以显示5个item,但是却有20条数据要显示,问最多会有多少个convertView会被复用?或者如在ListView的Adapter中,在以Google推荐的方式进行view的复用时,convertView为null时要对convertView进行新建,那么新建的convertView最多会有多少个?或者convertView为null的情况下最多的个数是多少? 对这个问题的原理酝酿了好久,今天终于有时间对…
1.概述 ListView是Android中非常常见的控件通过Adapter架起数据与界面显示的桥梁,MVC思想在其中得到了很好地体现: M:model 数据模型    添加到ListView中显示的数据 V:View   视图 在界面中显示的每一条样式(不只是通常的每一条,比如QQ聊天间隔显示的样式) C:Control  控制  通过Activity来协调全局 其中的关键所在就是Adapter(适配器),它就是一座桥梁,Adapter提供对数据的访问,也负责为每个数据产生每个对应的View,…
http://blog.csdn.net/bill_ming/article/details/8817172…
项目开发中我们需要从网络获取图片显示到控件中,很多开源框架如Picasso可以实现图片下载和缓存功能.这里介绍的是一种简易的网络图片获取方式并把它显示到ListView中. 本案例实现的效果如下: 项目结构: 根据部分开源代码,我修改并封装了一个网络图片加载的工具类GetImageByUrl,通过调用其中的setImage方法,传入待显示图片的ImageView控件和该图片的url路径这两个参数即可实现获取网络图片的功能. GetImageByUrl.java package com.leo.i…
=======================ListView原理============================== Android 的 ListView 的原理打个简单的比喻就是: 演员演小品(假设演员都长一样,每个角色任何演员都可以演) 小品剧不需要为每个角色都招募一个演员.ListView 也没必要为每一个 Item 创建 View 对象. 小品剧的演员在一个角色表演完成后,会在后台换下一个角色的服装,等待需要表演的时候再出场. ListView 会让未显示的 View 填充数据…
1.listview 中的条目要用 Volley 中的 NetworkImageView,如果直接用ImageView也可以,但是要在getView方法中使用url地址设置为imageView的tag标记 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" a…
实际开发中个人觉得用的比较多是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却能实现很多自己喜欢的列表布局,比如ListView.GridView.Gallery.Spinner等等.它是直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法,其中最重要的当属getView,因为这会涉及到ListView优化等问题,至于ListView优化问题本篇暂不作讨论. BaseAdapter中需要实现一个继承自BaseAdapter的类,并且重写里面的很多方…
要想在一个ListView中使用多个布局文件,比如一个信息List包含了一个信息标题和每个信息对应的时间. 关键的步骤是实现Adapter类的getItemViewType 和getViewTypeCount 这两个方法 getItemViewType(int) 以int数值型返回itemView的类型.一般普通列表的item都是一样的布局,也就是说这个列表只有一种类型,但是很多时候我们需要列表显示不同的item,比如有的列表有普通item和separator两种类型,item用于响应用户点击事…
Q:ListView + CheckBox 当上下滚动的时候有事会自动选中或取消 A:这个与ListView的缓存机制有关.当你屏幕滚动后,ListView中的item选项视图先检查缓存中是否有视图,如果有就用缓存中的,不过就是更新了一下绑定的数据.这样就会存在自动选中或取消的情况.想解决这个问题,也很简单.你需要一个记录CheckBox状态的列表,在重写getView方法中,读取列表中记录的状态就可以了 package com.tdcontactapp.lz; import java.util…
概述 Adapter是数据和UI之间的一个桥梁,在listview,gridview等控件中都会使用到,android给我们提拱了4个adapte供我们使用: BaseAdapter是一个抽象类,继承它需要实现较多的方法 ArrayAdapter支持泛型操作,最为简单,只能展示一行字 SimpleAdapter有最好的扩充性,可以自定义出各种效果 SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来.如需要实现更复杂的UI也…