ListView实现图文列表示例与点击事件
ListView 是Android平台中常用的一种控件,用于展示一列可滚动的数据项,常用于显示列表数据,如联系人、消息、商品列表等。本文将详细介绍如何在Android项目中使用ListView,包括布局文件设置、数据源的创建与管理以及适配器的配置。 首先,我们需要在XML布局文件中声明ListView。ListView的id通常定义为`@id/android:list`,这表示ListView将会是继承自`ListActivity`或`FragmentActivity`的Activity中的一个视图。例如,在`activity_main.xml`中: ```xml <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 接下来,我们需要在对应的Activity中获取到这个ListView。在Java代码中,通过`getListView()`方法获取,并将其保存在一个变量中以便后续操作: ```java ListView list = getListView(); ``` 然后,我们需要准备数据源。在这个例子中,我们创建了一个ArrayList,名为`listItem`,用来存储每个列表项的HashMap对象,每个HashMap包含三个键值对:`ItemImage`(图片资源ID)、`ItemTitle`(标题)和`ItemText`(内容)。例如: ```java ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < 10; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("ItemImage", R.drawable.ic_launcher); // 图片资源 map.put("ItemTitle", String.valueOf(i)); // 标题 map.put("ItemText", "内容" + i); // 内容 listItem.add(map); } ``` 为了将这些数据渲染到ListView中,我们需要创建一个`SimpleAdapter`,它负责将数据映射到视图。这里,我们指定了布局文件`item.xml`,其中包含了每个列表项的视图元素,比如`ImageView`、`TextView`等。创建SimpleAdapter的代码如下: ```java SimpleAdapter mSimpleAdapter = new SimpleAdapter(this, listItem, R.layout.item, new String[]{"ItemImage", "ItemTitle", "ItemText"}, new int[]{R.id.ItemImage, R.id.ItemTitle, R.id.ItemText}); list.setAdapter(mSimpleAdapter); ``` 最后,为了让用户能够交互,我们还需要为ListView设置点击监听器,当用户点击列表项时,会触发`onItemClick()`方法。虽然这里的代码未给出具体的实现,但一般会涉及到获取选中的列表项数据,并根据业务逻辑进行相应的处理: ```java list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 获取选中的列表项,例如: HashMap<String, Object> selectedItem = listItem.get(position); int itemImage = ((Integer) selectedItem.get("ItemImage")).intValue(); String itemTitle = (String) selectedItem.get("ItemTitle"); String itemText = (String) selectedItem.get("ItemText"); // 在这里可以进一步处理,如跳转到详情页面、更新UI等 } }); ``` 本文详细介绍了如何在Android项目中使用ListView,包括设置布局、创建数据源、配置适配器以及添加事件监听。通过这样的方式,你可以轻松地在应用中展示并管理一组带有图片、标题和内容的列表数据。
1.xml文件中控件属性为 @id/android:list;
activity中 extends ListActivity,用getListView()获取;
2.xml文件中控件属性为 @+id/suibian;
activity中 extends Activity,用findViewById获取;
2..java:
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();/* 在数组中存放数据 */
for (int i = 0; i < 10; i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.ic_launcher);// 加入图片
map.put("ItemTitle", "第" + i + "行");
map.put("ItemText", "这是第" + i + "行");
listItem.add(map);
}
SimpleAdapter mSimpleAdapter = new SimpleAdapter(this, listItem, R.layout.item, new String[] { "ItemImage", "ItemTitle", "ItemText" }, new int[] { R.id.ItemImage, R.id.ItemTitle, R.id.ItemText });
list.setAdapter(mSimpleAdapter);// 为ListView绑定适配器,其中list为获取到的listview控件
list.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
}
});
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 46
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦