第八天 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总结的更多相关文章

  1. 使用自定义的BaseAdapter实现LIstView的展示

    http://stephen830.iteye.com/blog/1141394 使用自定义的BaseAdapter实现LIstView的展示 实现以下功能点: 1.通过自定义的BaseAdapter ...

  2. 使用自定义的BaseAdapter实现LIstView的展示(转)

    使用自定义的BaseAdapter实现LIstView的展示 原文链接 http://stephen830.iteye.com/blog/1141394 使用自定义的BaseAdapter实现LIst ...

  3. BaseAdapter使listview设置不同背景图片并添加selector

    前段时间为了实现根据item不同的内容实现不同的背景色google了好久只找到了个隔行换色,通过自定义SimpleAdapter终于实现了此功能,但是定义了selector并没有触发点击效果.今天重新 ...

  4. Android 中万能的 BaseAdapter(Spinner,ListView,GridView) 的使用!

    大家好!今天给大家讲解一下BaseAdapter(基础适配器)的用法,适配器的作用主要是用来给诸如(Spinner,ListView,GridView)来填充数据的.而(Spinner,ListVie ...

  5. 基于BaseAdapter的Listview小Demo

    ListView是android开发中比较常用的控件, 其中适配器模式可以选择: ArrayAdapter:简单易用,通常用于将数组或者List集合的读个包值封装成多个列表项 SimpleAdapte ...

  6. Android ListView使用BaseAdapter与ListView的优化 (转至 http://www.open-open.com/lib/view/open1339485728006.html)

    在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点.读者可 ...

  7. 重写BaseAdapter实现ListView

    public class BaseAdapterActivity extends BaseActivity { private ListView base_adapter_listView; priv ...

  8. ListView 自己定义BaseAdapter实现单选打勾(无漏洞)

    (假设须要完整demo,请评论留下邮箱) (眼下源代码已经不发送.假设须要源代码,加qq316701116.不喜勿扰) 近期由于一个项目的原因须要自己定义一个BaseAdapter实现ListVIew ...

  9. Android之ListView&ViewPager模拟新闻界面

    模拟新闻 APP 的界面 1)写 ListView 之前先写布局: 这里有两种 Item 的布局: <?xml version="1.0" encoding="ut ...

随机推荐

  1. 【NOIP2012-开车旅行】

    这道题:你不仅要学会两人交换开车,还要做到高效驾驶. ·分析:       在拨开花哨题目的迷雾之后,发现两个重要突破口:       ①从每个点开始,他们的路径是一定的,不存在决策选取.       ...

  2. Python中list的功能介绍

    List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([ ...

  3. TensorFlow Serving-TensorFlow 服务

    TensorFlow服务是一个用于服务机器学习模型的开源软件库.它处理机器学习的推断方面,在培训和管理他们的生命周期后采取模型,通过高性能,引用计数的查找表为客户端提供版本化访问. 可以同时提供多个模 ...

  4. 从JVM角度看i++ 与++i

    1.i++和++i的问题 反编译结果为 Code:  0:   iconst_1  1:   istore_1  2:   iinc    1, 1 //这个个指令,把局部变量1,也就是i,增加1,这 ...

  5. eclipse的maven操作无反应

    第一 查eclipse能不能正常用 hi world.java 第二 查maven能不能正常用 cmd: mvn -v 第三 看看maven和eclipse是不是64位之类的 第四 maven和ecl ...

  6. [转]关于OpenGL的绘制上下文

    [转]关于OpenGL的绘制上下文 本文转自(http://www.cnblogs.com/Liuwq/p/5444641.html) 什么是绘制上下文(Rendering Context) 初学Op ...

  7. E1

    en表"使怎么样" engage 吸引,从事,订婚    be engaged in doing sth.  忙于 endure  忍耐,忍受 enforce 强制执行 enrol ...

  8. Objective-C中的消息发送总结

    关于OC中的消息发送的实现,在去年也看过一次,当时有点不太理解,但是今年再看却很容易理解. 我想这跟知识体系的构建有关,如果你不认识有砖.水泥等这些建筑的基本组成部分,那么我们应该很难理解建筑是怎么建 ...

  9. Bootstrap3 表格-紧缩表格

    通过添加 .table-condensed 类可以让表格更加紧凑,单元格中的内补(padding)均会减半. <table class="table table-condensed&q ...

  10. 20160210.CCPP体系详解(0020天)

    程序片段(01):01.二级指针.c 内容概要:二级指针 #include <stdio.h> #include <stdlib.h> //01.二级指针: // 1.使用场景 ...