zoukankan      html  css  js  c++  java
  • 巩固BaseAdapter(2017年12月12日)

    2017.12.12

    1、巩固BaseAdapter

    【案例】使用listview显示联系人列表。

    对于数据操作,不再让每一个集合元素使用HashMap,而是直接使用实体类。

     

    activity_main.xml

     

    item.xml

     

    styles.xml

     

    Person.java

     

    MyBaseAdapter.java

     

     

    MainActivity.java

     

    效果:

     

     

    2ListViewBaseAdapter显示的性能问题

    当加载很多item时,ListView会明显变慢。如何提高ListView的性能?

    每个item实际上都是单独的控件。而这些控件都是根据显示情况,临时生成的。

    由于每次都要从view中创建控件,这个过程非常耗用资源。能否将这些item中的控件缓存起来。

    如何缓存这些item中的控件?

    定义一个实体类,根据控件个数来定义这个实体类。(ViewHolder

    【案例】扩大上例数据显示数。观察性能问题。

    MainActivity.java---修改

     

    MyBaseAdapter.java

     

    日志:

    无论怎么滚动Listview,只会看到7条日志。而之前是有多少数据,就显示多少条日志。性能大大提升。

     

    3、为Listview添加事件

    对于用户点击item时,有响应。该事件是——onItemClick(针对Listview来说,属于listview的事件,不是属于单个item

    【案例】点击item响应

    MainActivity.java中追加

     

    效果:

     

     

    4GridView(网格视图)

    ListView(列表视图)是纵向显示数据

    GridView是横向显示数据,如果一行显示不下,就会换行。

    都需要使用数据适配器,仅仅是外观不一样。

    GridView有哪些属性:

    ColumnWidth:表示一列的宽度

    numColumn:表示一行显示几列

    horizontalSpacing:水平方向间距

    verticalSpacing:垂直方向间距

    gravity:内部元素对齐方式

    stretchMode:拉伸方式(不拉伸NO_STRETCH,拉伸间距STRETCH_SPACING,元素和间距一起拉伸STRETCH_SPACING_UNIFORM,元素本身STRETCH_COLUMN_WIDTH

    【案例】显示的每个单元格,上图下字。

    项目结构:

     

    activity_main.xml

     

    item.xml

     

    MyBaseAdapter.java

     

     

     

    MainActivity.java

     

    效果:

     

    【作业】

    1、P177页,图6-7

    2、修改之前作业“选择地址”,地址列表使用ListView,当用户选择后,显示选中的地址。

    选做:

    第2题中,地址信息编辑功能选做。

  • 相关阅读:
    左偏树
    output html
    jsp web.xml
    mysql link db
    beamline
    jsp embend java into html / mix scriptlets and HTML
    StringTokenizer
    TreeSet
    centOS 显示中文
    request and response
  • 原文地址:https://www.cnblogs.com/sanshengshitouhua/p/14577206.html
Copyright © 2011-2022 走看看