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. [Javascript] MetaProgramming: new.target

    new.target is a new “magical” value available in all functions, thoughin normal functions it will al ...

  2. MFC程序实现给对话框加入�背景图片

    1.插入一个Bitmap的资源图片,如果资源名称为:IDC_BITMAP1 2.在CXXXDialog::OnPaint()中实现: void CMyDialogDlg::OnPaint() { if ...

  3. 如何查看电脑的链接WIFI密码

    这个查看起来确实有难度,一般软件也难以破解.不如你试试在浏览器输入192.168.1.1,账户密码都是admin然后进入路由设置里.无线安全设置里有.

  4. Android开发之屏幕方向

    一.处理屏幕方向变化的两种技术 1.锚定方法 2.调整大小和重新定位,这种方法一般是分别为横向和纵向两种模式各自定义用户界面xml界面文件,当方向变化时读取对应的界面配置文件即可. 二.检测屏幕方向改 ...

  5. Java基础知识强化之集合框架笔记63:Map集合之HashMap嵌套ArrayList

    1. ArrayList集合嵌套HashMap集合并遍历. 需求:假设ArrayList集合的元素是HashMap.有3个.每一个HashMap集合的键和值都是字符串.元素我已经完成,请遍历. 结果: ...

  6. Android ListView实现仿iPhone实现左滑删除按钮

    需要自定义ListView.这里就交FloatDelListView吧. 复写onTouchEvent方法.如下: @Override public boolean onTouchEvent(Moti ...

  7. FolderBrowserDialog使用

    private void button_browse_Click(object sender, EventArgs e) { FolderBrowserDialog fbd = new FolderB ...

  8. HIdernate入门

    简介: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使 ...

  9. js实现FileUpload选择图片后预览功能

    当asp.net的FileUpload选择一个图片后不需要上传就能显示出图片的预览功能, 代码: <%@ Page Language="C#" AutoEventWireup ...

  10. 如何下载到最新的版本的Oracle Database

    其实这不是一个很困难的事情,但是发现好多同学都不知道,其实只需直接访问Oracle的官网就可以找到,鉴于Oracle经常改到下载面也我这里直接粘贴下载地址 http://www.oracle.com/ ...