初探ListView和Adapter
关于Android Adapter(适配器),参考Devin Zhang’s blog。简单的说,Adapter起到的作用是使得前端的显示和后端的数据能够适配,用以下代码作为例子
1 |
public class MainActivity extends Activity{
private List<fruit> myFruits = new ArrayList<fruit>();//将数据定义为实例
@Override
|
关于fruitAdapter类
1 |
public class fruitAdapter extends ArrayAdapter<fruit>{
private int resourceId;
|
对于getView(),《第一行代码》中给出的解释是“在每个子项被滚动到屏幕内的时候会被调用”。这句话的另一层意思是:凡是ListView中可见的子项,均调用了getView()方法。事实上也只能如此,因为在构造函数中并未告诉ListView如何呈现样式。也因此呢,整个ListView的过程是:创建Adapter(需调用构造函数)->特定的ListView指定该Adapter->在屏幕需要显示子项时调用getView()
接着附上fruit类的代码
1 |
public class fruit {
|
最后就出现了这样的ListView
界面
界面
这样看来图片的大小得事先选好,图片越大,速度越慢
滑动的时候确实会卡顿,优化如下:
getView()的convertView用于缓存加载好的布局,不至于每次有子项滑入屏幕内都要加载一次布局
1 |
//在每个子项被滚动到屏幕内的时候调用getView() |
从优化ListView过程中,看出至始至终都是使用第一次加载好的view,索性在view里面再加上存有控件实例的viewHolder
写子项->适配器->item->mainActivity(传数据)
初探ListView和Adapter的更多相关文章
- ListView和Adapter数据适配器的简单介绍
ListView 显示大量相同格式数据 常用属性: listSelector listView每项在选中.按下等不同状态时的Drawable divider ...
- ListView和Adapter的配合使用以及Adapter的重写
ListView和Adapter的使用 首先介绍一下ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来.一般而言,一个ListView由以下三个元素组成: ...
- 在为ListView设置adapter时出错
为listView设置adapter,代码如下: SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.m ...
- Android listview与adapter用法
listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...
- ListView 和 Adapter用法
一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常 ...
- ListView及Adapter的使用
一.使用ArrayAdapter 其中ArrayAdapter的构造函数有如下几个,其中resource是指每个列表项的布局文件,objects是指列表项的数据源,此处通常指一个数组 ArrayAda ...
- 初探ListView
ListView可能是Android开发中最常用的一个控件,但要用的纯熟还需要不断的锻炼. 建立简单的ListView 1.在布局文件(.xml)中添加<ListView>标签 2.在Ma ...
- android 开发之 ListView 与Adapter 应用实践
在开发android中,ListView 的应用显得非常频繁,只要需要显示列表展示的应用,可以说是必不可少,下面是记录开发中应用到ListView与Adapter 使用的实例: ListView 所在 ...
- [Android] Android RecycleView和ListView 自定义Adapter封装类
在网上查看了很多对应 Android RecycleView和ListView 自定义Adapter封装类 的文章,主要存在几个问题: 一).网上代码一大抄,复制来复制去,大部分都运行不起来,或者 格 ...
随机推荐
- MYSQL delete 从多人表中删除
语法 1. delete table_list_A from table_list_B where bool_expression; 从delete_table_list_A 删除 bool expr ...
- SQL Server 内存开销分析
第一步: 每一类资源用了多少内存. select clerks.type, sum(clerks.virtual_memory_reserved_kb) as Res ...
- 从HCE的各种问题 讨论未来趋势
为了能让NFC手机支持NFC支付,维萨公司和万事达公司宣布了对HCE的研发,并且将很快推出最新的HCE规范.从2012年末,我一直在关注关于HCE的相关信息,其原因是由于我们公司参与了名为Simply ...
- C#调用API函数EnumWindows枚举窗口的方法
原文 http://blog.csdn.net/dengta_snowwhite/article/details/6067928 与C++不同,C#调用API函数需要引入.dll文件,步骤如下: 1. ...
- 在 Inno Setup 中实现倒数N秒后激活按钮
原文 http://restools.hanzify.org/article.asp?id=67 timectrl.dll 为一个 6.5 KB 的按钮激活时间控制插件. 引用来自 Example1 ...
- Genymotion如何访问本地服务器?
找到原因了,其实跟Genymotion没有关系,因为他本身是作为VirtualBox的一个虚拟OS在运行. 默认情况下,查看Genymotion的网络配置,是Host-Only模式: Microsof ...
- AOP概念
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的 ...
- fstab 介绍
http://forum.ubuntu.org.cn/viewtopic.php?t=58468 主要翻译自http://www.tuxfiles.org/linuxhelp/fstab.html,根 ...
- C app
1,C 输入输出字符串
- 搭建PhoneGap for Android开发环境
一.确保Android开发环境正常. 二.下载PhoneGap.可到http://www.phonegapcn.com/去下载,速度快些. 三.新建一个PhoneGap项目 1.在eclipse中新建 ...