08 BaseAdapter 和ListView总结
第八天 ListView 列表视图
一,特点: >垂直滚动列表,是ViewGroup(容器),列表项使用Adapter填充
二,属性 > android:divider="@drawable/qdhline" item之间的分割线 可以用颜色#RGB 还可以用图片 android:dividerHeight="5dp" 分割线的间距(高度)
三,填充方式
1, 属性填充: android:entries="@array/books"
2, 用ArrayAdapter
3, 用SimpleAdapter
4, 使用BaseAdapter
四,自定义适配器 BaseAdapter的用法
- 1,创建一个类继承BaseAdapter
- 2,实现BaseAdapter里的方法
- getCount():获取数据总长度
- getItem(int position)获取当前下标item的数据
- getItemId(int position) 获取当前下标item的id 如果实体类里有从实体类里获取 没有 position
- getView(int position, View convertView, ViewGroup parent) 返回当前下标item的视图
五,ListView的事件
1,点击事件 onItemClickListener()
2,长点击事件(0.18s)onItemLongClickListener()
3返回值:true 只执行长点击事件 返回false 执行长点击和其他事件
注意如果其子item设置了OnClickLisner
六,ListVIew数据为空时:
>//lv中没有数据时展示View,有数据不展示View
lv.setEmptyView(tv);
六, ListView的优化
- 1,在xml布局中给ListView设置固定的宽高 match_parent 不建议使用wrap_content
- 2,复用convertView 减少创建item布局对象次数 ( 当顶部item出去 新的item的就是使用顶部出去的item)
- 3,使用ViewHolder 减少查找控件的次数(将控件打包ViewHolder,将ViewHolder放到convertView当convertView不为空时将ViewHolder取出)
七: ListView 添加头(布局和原本的item样式不一致) 和添加尾
//获取头布局
View headerView = getLayoutInflater().inflate(R.layout.header_layout, null);
//头布局中控件的事件监听
ImageView ivHeader = (ImageView) headerView.findViewById(R.id.iv_header);
ivHeader.setOnClickListener(this);
//listView 添加头布局
lv.addHeaderView(headerView);
//listView 添加尾
View footView = getLayoutInflater().inflate(R.layout.footer_layout, null);
lv.addFooterView(footView);
08 BaseAdapter 和ListView总结的更多相关文章
- 使用自定义的BaseAdapter实现LIstView的展示
http://stephen830.iteye.com/blog/1141394 使用自定义的BaseAdapter实现LIstView的展示 实现以下功能点: 1.通过自定义的BaseAdapter ...
- 使用自定义的BaseAdapter实现LIstView的展示(转)
使用自定义的BaseAdapter实现LIstView的展示 原文链接 http://stephen830.iteye.com/blog/1141394 使用自定义的BaseAdapter实现LIst ...
- BaseAdapter使listview设置不同背景图片并添加selector
前段时间为了实现根据item不同的内容实现不同的背景色google了好久只找到了个隔行换色,通过自定义SimpleAdapter终于实现了此功能,但是定义了selector并没有触发点击效果.今天重新 ...
- Android 中万能的 BaseAdapter(Spinner,ListView,GridView) 的使用!
大家好!今天给大家讲解一下BaseAdapter(基础适配器)的用法,适配器的作用主要是用来给诸如(Spinner,ListView,GridView)来填充数据的.而(Spinner,ListVie ...
- 基于BaseAdapter的Listview小Demo
ListView是android开发中比较常用的控件, 其中适配器模式可以选择: ArrayAdapter:简单易用,通常用于将数组或者List集合的读个包值封装成多个列表项 SimpleAdapte ...
- Android ListView使用BaseAdapter与ListView的优化 (转至 http://www.open-open.com/lib/view/open1339485728006.html)
在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点.读者可 ...
- 重写BaseAdapter实现ListView
public class BaseAdapterActivity extends BaseActivity { private ListView base_adapter_listView; priv ...
- ListView 自己定义BaseAdapter实现单选打勾(无漏洞)
(假设须要完整demo,请评论留下邮箱) (眼下源代码已经不发送.假设须要源代码,加qq316701116.不喜勿扰) 近期由于一个项目的原因须要自己定义一个BaseAdapter实现ListVIew ...
- Android之ListView&ViewPager模拟新闻界面
模拟新闻 APP 的界面 1)写 ListView 之前先写布局: 这里有两种 Item 的布局: <?xml version="1.0" encoding="ut ...
随机推荐
- Android Studio创建/打开项目时一直处于Building“project name”Gradle project info的解决办法
重新安装了Android studio 之后, 启动android studio,打开原来的项目,界面一直停留在: 一直停留在此界面的原因是:Android studio 在下载 Gradle ,但是 ...
- Spring中的InitializingBean接口的使用
InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法. 测试,如下: imp ...
- Linux学习之CentOS(八)----详解文件的搜寻、查找(转)
which (寻找『运行档』) [root@www ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 分 ...
- Enum枚举
Java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要 ...
- Redis持久化的两种方式(RDB和AOF)
redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File). RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储 ...
- angularjs+ionic的app端分页和条件
做app项目积分商城的商品列表需要分页显示 实现: ionic滚动条:ion-scroll 用于创建一个可滚动的容器. 附:菜鸟教程:http://www.runoob.com/ionic/ionic ...
- git reset揭秘
一.命令 首先,让我们来解释几个定义. HEAD(头) 指向当前branch最顶端的一个commit,该分支上一次commit后的节点 Index(索引) The index, ...
- python环境搭建(python2和python3共存)
安装两个版本的意义 验证自己代码对版本的兼容性 网上下载的某些源码只能在python2或者python3中运行 安装过程记录 1.去python官网下载python的安装包, 下载完成后如下图所示 2 ...
- ACM Ignatius and the Princess II
Problem Description Now our hero finds the door to the BEelzebub feng5166. He opens the door and fin ...
- Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API
新语法 方法引用Method references Lambda语法 Lambda语法在AndroidStudio中报错 Stream API 我正参加2016CSDN博客之星的比赛 希望您能投下宝贵 ...