美文网首页
Android之ListView(一) -- 基本(Arra

Android之ListView(一) -- 基本(Arra

作者: 晾那呗 | 来源:发表于2016-04-29 16:03 被阅读0次

    Android中有一种   “高级”   控件,之所以   “高级”,是因为,他的实现过程类似于MVC框架,数据和视图是分开的,不像其他控件,拖过来就能用,这一种控件就是AdapterView类控件,AdapterView又分为几中,常用的有ListView,Spinner,GridView。ListView是我们平时最常用的一种。我们经常有这样的需求,简单的展示列表信息,或者展示信息并且要有点击交互等。ListView通常的作用就是这两个:

    1、展示信息到布局文件(通常是列表信息)

    2、处理用户的点击选择等事件

    一、展示信息

    使一个LIstView工作通常需要三个元素:

    1、展示数据的控件,ListView中每一列的view,(通常是一个单独的布局文件)

    2、展示的数据,要填充到view的数据信息

    3、连接数据与ListView的适配器(Adapter)

    从上面三个元素可以看出,要熟练的使用ListView,还是要详细的了解适配器。常用的适配器大致有四种:BaseAdapter(通用的基础适配器)、ArrayAdapte、SimpleAdapter(绑定在xml布局文件中定义的控件对应的数据)、SimpleCursorAdapter(绑定游标得到的数据)。除了这四种,还有好多适配器,各种适配器转换数据的方式和能力各不一样。

    1、ArrayAdapter

    绑定一个数组,支持泛型操作

    ArrayAdapter使用非常简单,首先在布局文件中增加一个ListView控件,并设置控件宽、高、id等属性。例如:

    <ListView android:id="@+id/lview"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"/>

    然后再Activity中初始化

    String[] strs =newString[] {    "first", "second", "third", "fourth", "fifth"    };

    lview = (ListView) findViewById(R.id.lview);//得到ListView对象的引用

    /*为ListView设置Adapter来绑定数据*/

    lview.setAdapter(newArrayAdapter(this, android.R.layout.simple_list_item_1, strs));

    ArrayAdapter的参数有三个,其中第一个参数是当前上下文,第二个参数是ListView子项布局的id,第三个参数是要绑定的数据。其中第二个参数android.R.layout.simple_list_item_1是Android内置的布局文件,这个布局文件中只有一个TextView用来简单的显示一段文本。setAdapter方法的作用是将建好的适配器对象ArrayAdapter传递给ListView。

    2、SimpleAdapter

    SimpleAdapter的功能要比ArrayAdapter的功能强大的多,可以显示图片,文字,选择框等多种需求。SimpleAdapter的数据源只能是List<Map<"键","值">>形式的数据。

    SimpleAdapter使用方法:

    首先在布局文件中增加ListView控件,这里不展示代码。然后要增加一个定义ListView中每一项的布局文件,布局文件中的控件及展示,可以根据自己的需要定义。最后在java代码中为ListView绑定数据。例如:

    ListView lview = (ListView) findViewById(R.id.lview);

    /*定义一个动态数组*/

    ArrayList<HashMap<String,Object>> listItem = newArrayList<HashMap<String,Object>>();

    /*在数组中存放数据*/

    for(inti=0;i<10;i++)  {              

    HashMap map =newHashMap();            

    map.put("ItemImage", R.drawable.icon);//加入图片

    map.put("ItemTitle", "第"+i+"行");            

    map.put("ItemText", "这是第"+i+"行");            

    listItem.add(map);          

    }      

    SimpleAdapter mSimpleAdapter =newSimpleAdapter(this,listItem,R.layout.item,

    newString[] {"ItemImage","ItemTitle", "ItemText"},  

    newint[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText});

    lview.setAdapter(mSimpleAdapter);//为ListView绑定适配器

    listItem为要绑定到ListView中的数据,mSimpleAdapter为适配器。定义适配器的构造方法一共有5个参数。参数1:当前上下文;参数2:要绑定的数据;参数3:为listview定义的每一项的布局文件;参数4:要绑定的数据的键值;参数5:要绑定的控件的id;其中参数4和参数5一般情况下是对应的,例如该例中,数组listItem中的项ItemImage
    要绑定到对应id为R.id.ItemImage的控件中。

    到这里ArrayAdapter和SimpleAdapter的简单内容完毕,因为篇幅太长,下篇为BaseAdapter与ListView的基本知识与优化。

    相关文章

      网友评论

          本文标题:Android之ListView(一) -- 基本(Arra

          本文链接:https://www.haomeiwen.com/subject/vrghrttx.html