【Android控件之ListView用法实例详解】 在Android开发中,ListView是一个非常关键的控件,用于展示大量的数据,通常以列表的形式呈现。ListView的优势在于它可以根据数据的长度动态调整高度,节省屏幕空间,提高用户体验。本文将通过两个实例详细解析ListView在实际应用中的用法。 **实例一:基本ListView实现** 1. **布局文件(main.xml)** 主要包含一个LinearLayout作为容器,内部嵌套了一个ListView。ListView的宽度设置为wrap_content,高度为wrap_content,这样可以根据内容自动扩展。 ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/MyListView"/> </LinearLayout> ``` 2. **列表项布局文件(my_listitem.xml)** 这是ListView中每一项的布局,包含两个TextView,分别用于显示标题和内容。 ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="wrap_content" android:id="@+id/myListItem" android:paddingBottom="3dip" android:paddingLeft="10dip"> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/itemTitle" android:textSize="20dip"/> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/itemText"/> </LinearLayout> ``` 3. **Activity(LsActivity)** 在这个例子中,我们创建了一个Activity,初始化ListView并填充数据。通过findViewById()方法获取到ListView对象。然后,创建一个HashMap列表mylist,用于存储每一条列表项的数据。HashMap的键值对对应于my_listitem.xml中的TextView的ID,将数据放入map,最后添加到mylist中。使用SimpleAdapter将数据源绑定到ListView上。 ```java package com.ljq.ls; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; import android.widget.SimpleAdapter; public class LsActivity extends Activity { private ListView list = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); list = (ListView) findViewById(R.id.MyListView); // 组织数据源 List<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); for (int i = 0; i < 10; i++) { HashMap<String, String> map = new HashMap<String, String>(); map.put("itemTitle", "This is Title"); map.put("itemText", "This is text"); mylist.add(map); } // 创建SimpleAdapter并设置数据源 SimpleAdapter adapter = new SimpleAdapter( this, // 当前上下文 mylist, // 数据源 R.layout.my_listitem, // 列表项布局 new String[]{"itemTitle", "itemText"}, // 显示的字段 new int[]{R.id.itemTitle, R.id.itemText}); // 字段对应的View ID // 设置适配器 list.setAdapter(adapter); } } ``` **实例二:自定义Adapter** 除了使用SimpleAdapter,还可以自定义Adapter来更灵活地控制ListView的显示效果。自定义Adapter需要继承BaseAdapter,实现其中的四个方法:getCount()、getItem()、getItemId()和getView()。在getView()方法中,你可以根据数据项创建和填充视图,从而实现自定义的列表项样式。 **ListView优化** 1. **ViewHolder模式**:为了提高ListView的滚动性能,可以使用ViewHolder模式,减少findViewById的调用次数。 2. **convertView复用**:在getView()方法中,检查convertView是否为空,如果不为空,就直接复用,避免频繁创建新的View对象。 3. **数据分页加载**:对于大量数据,可使用懒加载策略,只加载可视范围内的数据,滚动时动态加载更多。 4. **异步加载**:为了不影响UI线程,可以使用AsyncTask或其他异步处理机制,将数据加载和界面更新分离开。 ListView是Android开发中不可或缺的一部分,通过实例我们可以看到如何使用它来展示列表数据。理解ListView的工作原理以及如何优化其性能,是每个Android开发者必备的技能。无论是使用内置的SimpleAdapter,还是自定义Adapter,都可以帮助我们构建功能丰富的列表界面,满足各种需求。






























- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 光纤通信系统5B6B码译码的设计与仿真.doc
- 云计算在中小企业人力资源管理中的应用探讨.docx
- 单片机温度控制系统的设计与实现1.doc
- 电力企业信息网络安全存在的问题及其对策.docx
- 大型门户网站建设方案.doc
- 信息化设备采购(含安装调试)项目招标文件.doc
- 论信息化技术在图书管理中的运用.docx
- 安全食品网站项目计划书1425385822.ppt
- MATLAB的图形用户界面设计在非线性系统中的应用.doc
- 面向宅基地确权的地籍调查数据库设计研究.docx
- 云计算安全风险因素挖掘与应对策略.docx
- 门户网站的市场营销.doc
- 基于大数据的高效分布式离群点检测算法.docx
- 安阳师范学院财务管理软件谈判采购项目.doc
- 安装Windows2003系统没有自带的驱动程序的方法.doc
- C语言某高校图书管理.doc



- 1
- 2
前往页