LIstView

来源:互联网 发布:网络错误代码-7 编辑:程序博客网 时间:2024/05/28 17:05
ListView控件
一、概述:
Android中,列表行控件是数据源为数组或集合的控件
列表类型的控件有ListView,GridView,Gallery,Spinner
列表型控件支持适配器模式显示数据
二、AdapterView类
(一)概述
AdapterView是ViewGroup的子类,由一个适配器和绑定到适配器的数据集组合而成。当需要在Android的View中显


示数组或集合数据时,AdapterView是非常有用的。
ListView、GridView、Gallery和Spinner是AdapterView的子类,这些View的数据源是数组或集合,并且用一种特


定的方式来显示这些数据
AdapterView对象有两个主要的功能
1.用数据填充视图
2.处理用户的操作事件
(二)AdapterView的继承图
Object-java.lang
 View-android.view
  ViewGroup-android.view
   AdapterView<T>-android.widget
    AbsListView-android.widget
     GridView-android.widget
     ListView-android.widget
      ExpandableListView-android.widget
   AbsSpinner-android.widget
    Gallery-android.widget
    Spinner-android.widget


提示
1.AdapterView的addView不被支持
2.AdapterView需要一个Adapter对象为其提供item
(三)、BaseAdapter类
(一)概述
AdapterView通过Adapter(适配器类)象AdapterView的子类视图填充数据,BaseAdapter是所有适配器的基类。该类


是抽象类。
(二)适配器的继承树图
Object-java.lang
 BaseAdapter-android.widget
  ArrayAdapter<T>-android.widget
  CursorAdapter-android.widget
  SimpleAdapter-android.widget
(三)常用方法
1.public View getView(int position,View convertView,ViewGroup)
作用:创建并返回列表项,包括列表项的显示样式和数据,Android根据getView返回的对象绘制列表项
说明:
参数1:position当前列表项在列表的索引值
参数2:convertView当前列表项的View对象
参数3:parent列表项的父容器对象-列表对象
提示:该方法是抽象方法
2.public long getItemId(int position)
作用:返回当前列表项的索引值
参数position:当前列表项的索引值
提示:该方法是抽象方法
3.public Object getItem(int position)
作用:返回当前列表项对象
参数:position当前列表项的索引值
提示:该方法是抽象方法
4.public int getCount()
作用:返回列表对象总数,Android系统根据getCount()返回的值绘制指定数量的列表项
提示:该方法是抽象方法
说明:返回数组的总长度,该数组的长度也就是列表项的个数
四、ListView控件
(一)概述
ListView是Android应用程序中使用频率最高的控件。该控件使用垂直列表的方式显示多个选项,特别适合于手机


这种屏幕较小的设备
ListView控件的特点:每个列表独占一行,每行的布局都相同,数据和布局分离,支持数据来自适配器,ListView
只负责布局。
说明:
ListView是AdapterView的间接子类,支持适配器填充数据
ListView就是一个容器,可以包含Item(Child)
(二)常用属性:
XML属性                          说明
choiceMode                     设置ListView的选择方式,有三个值
                                1.none:默认方式
                                2.SingleChoice:单选
                                3.multipleChoice:复选
divider                        设置列表项的分隔条,分隔条可以是颜色值亦可以是图片
dividerHeight                  分隔线的高度值
entries                        设置显示的内容,该内容是字符串数组
(三)常用方法
1.Object getItemAtPosition(int position)
作用:获得当前列表项
参数position:当前列表项的索引值 
2.void setChioceMode(int choiceMode)
作用:设置列表的选择方式
参数choiceMode有以下三个可选值:
ListView.CHOICE_MODE_NONE
ListView.CHOICE_MODE_SINGLE
ListView.CHOICE_MODE_MULTIPLE
(四)ListView的使用步骤
1.创建布局文件,在该布局文件中声明ListView控件
2.创建第二个布局文件,在该文件中为ListView的Item设置显示样式
3.在Activity中实例化ListView
4.获取数据集,即创建需要在ListView中显示的数据
5.创建适配器对象
6.设置ListView对象与步骤5创建的适配器相关联
说明:
Android的AdapterView采用MVC模式显示、处理数据,其中以上的1,2是View层,负责设置显示的样式,4是


Module层,创建需要显示的数据,5是控制层,用于将数据显示在View中,并负责对数据的增删改的操作。
五、View.inflate()
public static View inflate(Context context,int resource,ViewGroup root)
作用:将一个布局文件实例化为一个View类型的Java对象
参数context:当前的Activity对象
参数resource:布局文件的id值
参数root:该布局需要方式在哪个容器对象中。若无则设置为null。


OnItemClick接口
(一)概述
OnItemClick接口负责监听列表项点击事件
(二)常用方法
void OnItemClick(AdapterView<?>parent,View view,int position,long id)
作用:监听用户点击列表项的事件
说明:
参数parent:当前列表对象,如ListView对象
参数view:被点击的列表项对象
参数position:被点击的view在适配器中的索引值
参数id:被点击的列表项在列表中的索引值
position与id之相同


OnItemLongClick接口
(一)概述
OnItemLongClick接口负责监听用户长安列表项的事件
(二)常用方法
public boolean onItemLongClick(AdapterView<?>parent,View view,int position,long id)
作用:监听用户长按列表项事件
返回:返回true表示本方法处理了长按事件,该事件不会分发给其他控件处理
      返回false,则本次长按事件换回分发给其他控件处理。
说明:长按是指触摸控件的时间超过0.5秒


SimpleAdapter
一(概述)
SimpleAdapter是BaseAdapter的子类。用该适配器可定义表现丰富的信息,例如在ListView列表项中显示带文字和
图片的信息
二(构造方法)
SimpleAdapter(Context context,List<? extenes Map<String,?>>data,int resource,String[]from,int []to)
参数说明:
1.第一个参数context:上下文参数,该参数与ArrayAdapter类的构造方法的第一个参数相同。
2.第二个参数data:一个List类型的集合,该集合的元素是Map类型,改map集合的键是String类型,值是任意类型


,每个map对象都存放一个列表项的信息
3.第三个参数resource:是布局文件的资源索引值,该布局控制列表项的显示样式
4.第四个参数from:一个字符串类型的数组,该数组存放着所有键名,就是存放列表项的Map对象出现的键。
5.第五个参数to:存放列表项的布局文件中出现的所有控件的资源索引值


ArrayAdapter类:数组适配器类,该类负责将数组或集合的数据按指定布局方式显示,通过与ListView等控件相关


联,在列表类型的控件按指定布局样式显示数组或集合的数据
说明:
1.ArrayAdapter的内部的数据一维数组或list集合
2.其返回的item中必须包含一个TextView控件,数组中的每个元素将被绑定到TextView控件上显示
(二)创建ArrayAdapter对象
ArrayAdapter<T>(Context context,int layoutRes,int textViewId,T[]data)
参数context:上下文对象
参数layoutRes:item界面对应的layout布局文件
参数TextViewId:item中包含的TextView的id
参数data:需要显示的数据集,可以是数组,也可以是集合
ArrayAdapter<T>(Context context,int layoutRes,T[] data)
参数context:上下文对象
参数layoutRes:item界面对应的layout布局,且该布局的根标签应当是TextView或TextView的子类
参数data:需要显示的数据集
ArrayAdapter.createFromResource(Context context,int arrayRes,int layoutRes)
参数context:上下文对象
参数arrayRes:数组资源
参数layoutRes:item界面对应的layout布局,且该布局的根标签应当是TextView或TextView的子类对象
0 0