ListView 列表是我们经常会使用的控件, 如果想要自定义里面的显示的话是挺麻烦的, 需要新建XML、Class SimpleAdapter这两个文件, 较为麻烦。 如果我们只是想显示两、三行文字在上面, 却又不想那么麻烦呢? 那我们只要新建一个XML就够了。
  这里以显示一个ListView项里三个TextView为例。
  首先我们要创建一个XML文件, 这个XML文件是用来作为单个ListView项布局用的。
  list_row.xml
[java]
<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffffff" 
    > 
 
    <TextView 
        android:id="@+id/textTo" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="16dip" 
        android:textColor="#333333" 
        />     
         
    <TextView 
        android:id="@+id/textOwn" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/textTo" 
        android:textSize="12dip" 
        android:textColor="#999999" 
        /> 
     
    <TextView 
        android:id="@+id/textState" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:textSize="14dip" 
        android:textColor="#999999" 
        /> 
</RelativeLayout>

第一个TextView是标题、第二个是内容、第三个是状态
接下来我们需要在主XML布局文件里面放置一个ListView控件
[html]
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="#ffffff" 
     > 
 
    <ListView  
        android:id="@+id/list" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:background="#ffffff" 
        ></ListView> 
 
</LinearLayout>

然后,我们要在主Activity里面声明三个成员变量
[java]
private List<Map<String, Object>> mList;     
private ListView mListView; 
private SimpleAdapter mListAdapter;

mList是用来存放要显示的数据
SimpleAdapter是ListView 数据的一个容器, 用来存放显示在ListView上的数据。 对 SimpleAdapter 的数据操作会直接影响到ListView的显示。
 
然后, 我们来给mList添加一些要显示的数据
 
[java]
mList  = new ArrayList<Map<String,Object>>(); 
[java]
Map<String, Object> map = new HashMap<String, Object>(); 
map.put("First", "这是标题"); 
map.put("Next",  "这是内容"); 
map.put("State", "状态"); 
 
mList.add(map);

这样就添加了一条数据, 如果要添加多条就重复再添加。
 
接下来我们把数据放入到SimpleAdapter/ListView中
 
[java]
mListAdapter = null; 
mListAdapter = new SimpleAdapter(this, mList, R.layout.list_row, 
new String[]{"First", "Next", "State"}, 
new int[]{R.id.textOwn, R.id.textTo, R.id.textState}); 
 
mListView.setAdapter(mListAdapter);

new SimpleAdapter的参数: 父指针、ArrayList的数据、 布局文件、 要显示的数据的标签、显示在哪些控件上。  后面两个参数顺序一定要对应。
 
最后, ListView载入了SimpleAdapter就可以了。
当然,我们直接操作mList也会影响到ListView的数据。 在修改了mList的数据后,调用SimpleAdapter的notifyDataSetChanged()方法后就可以了。

Android ListView列表控件的简单使用的更多相关文章

  1. Android UI组件----ListView列表控件详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  2. Android listview子控件的的点击事件(转)

    1.先看图,是否是你想要的 2.布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout ...

  3. Android ListView 子控件点击事件

    android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...

  4. 【Android】12.0 UI开发(三)——列表控件ListView的简单实现2

    1.0 由于书上内容,已经和实际编程的兼容性已经不太友好,重写了项目,用于进一步学习列表控件ListView. 2.0 新建项目ListViewTest,其中文件目录如下: 3.0 ActivityC ...

  5. Android列表控件ListView详解

    ListView绝对可以称得上是Android中最常用的控件之一,几乎所有应用程序都会用到它. 由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候 ...

  6. Android自定义标签列表控件LabelsView解析

    版权声明:本文为博主原创文章,未经博主允许不得转载. 无论是在移动端的App,还是在前端的网页,我们经常会看到下面这种标签的列表效果:   标签从左到右摆放,一行显示不下时自动换行.这样的效果用And ...

  7. Github上star数超1000的Android列表控件

    Android开发中,列表估计是最最常使用到的控件之一了.列表相关的交互如下拉刷新,上拉更多,滑动菜单,拖动排序,滑动菜单,sticky header分组,FAB等等都是十分常见的体验.Github中 ...

  8. 【Android】15.0 UI开发(六)——列表控件RecyclerView的网格布局排列实现

    1.0 列表控件RecyclerView的网格布局排列实现,关键词GridLayoutManager. LinearLayoutManager 实现顺序布局 GridLayoutManager 实现网 ...

  9. 【Android】14.0 UI开发(五)——列表控件RecyclerView的瀑布布局排列实现

    1.0 列表控件RecyclerView的瀑布布局排列实现,关键词StaggeredGridLayoutManager LinearLayoutManager 实现顺序布局 GridLayoutMan ...

随机推荐

  1. Java GC 概念摘要

    很长时间,我想Java的GC做一个小小的总结,他有没有时间.根据最近看了java paper向上java gc文章,我觉得好,读读.顺便说一下,总结下. java paper的GC文章地址,里面有非常 ...

  2. 详解Android动画之Tween Animation

    前面讲了动画中的Frame动画,今天就来详细讲解一下Tween动画的使用. 同样,在开始实例演示之前,先引用官方文档中的一段话: Tween动画是操作某个控件让其展现出旋转.渐变.移动.缩放的这么一种 ...

  3. Entity FrameWork 指导文章

    Entity FrameWork学习指导: 转:http://www.entityframeworktutorial.net/code-first/configure-many-to-many-rel ...

  4. linux常用的压缩与解压缩命令 分类: 学习笔记 linux ubuntu 2015-07-05 19:38 38人阅读 评论(0) 收藏

    1.gzip 压缩 gzip 是压缩文件,压缩之后文件后缀为.gz 用法:gzip 选项 [文件] 2.gunzip 解压 这个命令与gzip的功能刚好相反,这个是解压. 用法 gunzip 选项 [ ...

  5. 安装指南:Win10下安装CentOs7

    系统安装 安装准备 系统:CentOS 7.Win 10 硬件:U盘一枚.PC一台 软件:UltraISO 安装步骤 使用UltraISO将镜像写入U盘 window10使用磁盘管理,空出一个未分配的 ...

  6. CI框架篇之基础篇(1)

    CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包.它提供一套丰富的标准库以及简单的接口和逻辑结构, 其目的是使开发人员更快速地进行项目开发.使用 CodeIgnite ...

  7. CI框架篇之模型篇--初识(1)

    模型 模型是专门用来和数据库打交道的PHP类.例如,假设你想用CodeIgniter来做一个Blog. 你可以写一个模型类,里面包含插入.更新.删除Blog数据的方法. 下面的例子将向你展示一个普通的 ...

  8. Linq转成sql后的分页方法

    sql 分页 -- Region Parametersdeclare @pageindex int set @pageindex=2set @pagesize=10 DECLARE @p0 Int = ...

  9. CSS3高性能动画

    CSS动画属性会触发整个页面的重排relayout.重绘repaint.重组recomposite Paint通常是其中最花费性能的,尽可能避免使用触发paint的CSS动画属性,在CSS动画中使用w ...

  10. ubuntu亮度无法自动调节终极解决方案

    友情链接:IT狂人博客 这个问题纠结了我快两年,主要是自己懒,写了个脚本来调节亮度,不过还是稍显不便.近日兴起折腾了一番,终于找到问题根结了. There are many ways to contr ...