如何在Android创建列表

这篇博客介绍了如何在Android应用中利用ListActivity和SimpleAdapter轻松创建列表。通过ListActivity绑定静态数据到ListView,使用HashMap存储每行的标题和自定义数据。详细解释了SimpleAdapter构造函数的参数,展示了一个简单的例子,展示了如何将数据绑定到列表并处理用户点击事件。

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

通过系统提供了ListActivity类,在Anroid下创建一个列表非常方便。 只需将数据绑定到该类,并在其暴露的用户事件处理接口中处理用户的选择即可。

 

绑定的数据可以静态的数组数据(array)或者是通过查询返回的数据(Cursor)。

ListActivity自带了一个ListView,有缺省的layout格式,包括ListView的格式及每行的输出格式(screen layout, row layout),这些格式是可以定制的,简单起见,这里不讲如何定制该界面。

 

1. 新建一个Android工程,我这里命名为TigerDemos.

 

 

2. 修改程序TigerDemos.java如下

 

 

3. SimpleAdapter使用说明

 

    使用该类可以方便的将静态数据绑定到列表中去,关键是要理解下面的构造函数中的几个参数。

 

   SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

 

context

要绑定的列表所在的context,即ListActivity

 

data

一个ListList中的每一个元素对应列表中的一行,每一行的数据则由List元素包含的数据(Map)提供,该Map包含显示在列表上数据及用户自定义数据,即可以是多个(Key,Value)对,这里要求Key必须为String类型,而且包含的数据中至少有在from参数中指定的数据,就像例子中的“title”,这个Key对应的Value(必须保证能正确的转化成字符串)用来显示在列表上。

 

resource

用来显示列表数据的Viewlayout资源ID,该layout中必须包含to参数中指定的view ID,用来格式化显示每一行数据。就像windows的列表每一列含有多个控件用来显示from指定的数据。

例子中该值为android.R.layout.simple_list_item_1,显示一行数据,也可为android.R.layout.simple_list_item_2,可显示二行数据。这都是系统自带的layout

 

from

是个字符数组,用来指定Mapdata参数中)中哪些数据用来显示

 

to

显示数据的view ID,必须定义在resource中,其顺序与from参数对应。

 

正确实列化SimpleAdapter后,只需简单调用setListAdapter(ListAdapter),即可将数据绑定到列表。

 

4. 处理用户点击事件
 
   ListActivity类已经暴露了用户点击的事件处理函数接口,我们只需简单的重载它就可以了,即重载下面的函数:
 
   void onListItemClick(ListView l, View v, int position, long id);
  
   可以看得出Android列表,每一列不但可以显示多个数据,而且也可以包含多个用户数据,取决于应用的需求,Map中包含有任意数量的(Key,Value)对。
 
5. 运行效果

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值