Android15之控件ListView(初识)

ListView:是Android中非常重要的一个控件,也是最麻烦的一个控件,今天就来初步来认识一下ListView。

一、ListView是什么?
           ListView是一个控件,列表视图。将一些相同结构的视图批量显示。什么意思呢?如下所示:
一个空的ListView是什么样的呢?
代码如下:android:divider=“#0000ff” 为分割线的颜色
                    android:dividerHeight="3dp" 为分割线的粗细程度
图片
效果图如下
图片

通过上述图式可以知道:ListView就是将具有相同结构的视图批量显示,也就知道了ListView是什么。

平常开发中使用ListView的效果图
图片

图片


图片
这样的单个称为:一个列表项
所有的列表项一起称为:ListView,列表视图


图中主要内容有:高德地图、美团、263云通信.... 不难 发现,每个列表项都只包含三个部分:ImageView:Icon(图片)、TextView:Text(显示文字)、TextView:Size(大小)。也是具有相同的结构。

   
二、ListView的作用是什么?
        经过上面的分析,可以得知ListView有两大作用:①将所要展示的数据集合起来②以列表的形式展示到用户界面上
                          
在使用ListView之前,还得搞清楚一个概念, Adapter
三、Adapter是什么?
        Adapter:适配器,举个例子就明白适配器干嘛用的了,例如:家里只有两孔插座,但是你需要使用三孔插座,因而你从外面买来一根具有三孔的插座过来,这三孔插座的接头是两孔的,所以只需要将买的插座插在两孔插座上,就可以使用三孔插座了,这个例子中,你买来的三孔插座就相当于一个适配器。 
       
四、在Android中Adapter(适配器)作用是什么呢?
            ①
配置列表项布局
            ②
将需要的数据装配到ListView中的

明白了ListView和Adapter后,做一个小实例实现ListView的列表视图
步骤:
    ① 配置列表项布局(什么是列表项布局?就是上面所提到例子中Icon、Text、Size集中在一起所显示的样式布局,由ImageView、TextView、TextView结合在一起形成的布局)
    ② 初始化数据
    ③准备适配器:使用系统适配器或者自定义适配器。(今天使用系统适配器,在开发中使用最多的还是自定义适配器)
    ④ListView和适配器的的关联。ListView设置适配器,展示列表项,监听列表





例:效果如下:
     图片

①ListView(列表视图)
layout文件夹下
    lisrview1.xml
            图片
②配置列表项布局
    activity_main.xml   (名字只是一个名字而已,随意取,不用纠结)

设置列表项布局效果如下: 也就是三个控件:ImageView、TextView、TextView
图片

MainActivity.java中
                    setContentView(R.layout.listview1);            //使用ListView。
            ListView listview = (ListView) findViewById(R.id.app_ListView);        //获取ListView对象,用来最后设置适配器。

③初始化数据:
        1、使用Map集合保存在List中
                List<Map<String,Object>> data  = new ArrayList<Map<String,Object>>();
                            Icon,Value
                            name,value
                             size,value
                将三个数据放入Map中,这样就成了一个列表项的数据,存入List中。有多少个列表项数据,就存多少个Map。

       2、使用JavaBean保存数据,
            List<APPInfo> data = new ArrayList<APPInfo>();

        3、直接使用ArrayAdapter,这种方法就直接将第二、三步合在一起了。数据用的是字符串数组,适配器用的是系统自带的数组适配器。
               第一个参数context: 上下文
                第二个参数:列表项布局id,使用的是系统自带的布局
                第三个参数:字符串数组保存的数据。
               ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
                                new String[]{"a","b","c","d"});

从这里可能有个疑惑,是选择第一种还是第二种呢?
   这里我们选择第一种,因为可能一个工程有很多不同的列表项布局,不一定就只有ImageView、TextView、TextView这三个组合而成的布局,而是由十几种或者几十种,那么选择第二种初始化数据的话,将会要写几十个JavaBean,很麻烦,而第一种则更简便。
        List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();
        for(int i = 0; i < 10; i++){
            HashMap<String,Object> map = new HashMap<String,Object>();
            map.put("icon", R.drawable.emoji_095);
            map.put("name", "应用"+i);
            map.put("size", i+1);
            data.add(map);
        }

       


④适配器Adapter,今天先介绍系统自带的适配器,之后不久在介绍自定义适配器。ArrayAdapter(上面已经介绍了),重点在介绍SimpleAdapter(简单适配器)
    介绍这五个参数:
                1、Context:上下文
                2、data:数据是什么,这里就是前面自己写的data
                3、resource:列表项布局id
                4、from:数据从data中哪里来,从map中相应的key中来
                5、to:数据要填充到布局中的什么控件中去
             SimpleAdapter simpleadapter = new SimpleAdapter(
                this,
                data,
                R.layout.activity_main,
                new String[]{"icon","name","size"},
                new int[]{R.id.image,R.id.text1,R.id.text2});

⑤ListView装配适配器。展示数据
listview.setAdapter(simpleadapter);
图片

                       


如果要在每个列表项中添加监听器,
         图片

这样设置了监听器后,点击每一个列表项,都会提示吐司信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值