zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    啥叫ORM
    git reset --hard HEAD^ 在cmd中执行报错
    windows下生成文件目录树
    批量解决win10图标上有两个蓝色箭头的方法
    Sublime Text 3 安装包
    Sublime Text 3 部分安装过程记录
    sense8影评摘抄
    如何取消chrome的自动翻译
    把本地仓库同步到github上去
    关于PDF阅读器
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152280.html
Copyright © 2011-2022 走看看