Android——ListView实现简单列表

简介:             最近做一个black ant的温控系统项目,里面有很多列表项,但是用的时候,感觉封装的已经挺好的了,自己拿过来改改代码就行了,所以用过之后也没什么感觉。现在趁着闲暇时间整理下简单的ListView,体会下这个东西到底是怎么个原理。


            最近做一个black ant的温控系统项目,里面有很多列表项,但是用的时候,感觉封装的已经挺好的了,自己拿过来改改代码就行了,所以用过之后也没什么感觉。现在趁着闲暇时间整理下简单的ListView,体会下这个东西到底是怎么个原理。


      首先看下实现效果:


         

       其中,每一条列表项加的是一个Image跟一个TextView,数据源绑定在了TextView上面。


       首先,添加两个layout文件:


       列表(item)的布局文件:

   

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"
        />
    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="lhc"
        />

</LinearLayout>

 

     接着是整个Activity的布局文件:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <ListView
        android:id="@+id/lv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

</LinearLayout>



    接着是Activity的代码:



public class ListDemo extends Activity{
	private String[] names;//模拟数据源
	private ArrayList<HashMap<String,String>> listItem;//需求的数据结构
	private ListView mListView;//列表对象
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.listview_activity);
		initCtrl();//初始化组件
		mListView.setOnItemClickListener((OnItemClickListener)new OnItemClickListener(){
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				Toast.makeText(getBaseContext(), "您选择了 :"+names[arg2], Toast.LENGTH_LONG).show();
			}
		});
	}

	/*初始化组件*/
	private void initCtrl() {
		mListView=(ListView)findViewById(R.id.lv);//获得listView对象
		listItem=loadData();//加载数据
		SimpleAdapter listItemAdapter=new SimpleAdapter(getBaseContext(),/*指明了SimpleAdapter关联的View的运行环境,也就是当前的Activity*/
				listItem,/*由Map组成的List,在List中的每条目对应ListView的一行,每一个Map中包含的就是所有在from参数中指定的key*/
				R.layout.listview_item,/*定义列表项的布局文件的资源ID,该资源文件至少应该包含在to参数中定义的ID*/
				new String[]{"ItemName"},/*将被添加到Map映射上的Key*/
				new int[] {R.id.name}/*将绑定数据的视图的Id跟from参数对应,这些被绑定的视图元素应该全是TextView*/
				);
		//设置适配器
		mListView.setAdapter(listItemAdapter);
	}

	/*模拟获取数据源过程*/
	private ArrayList<HashMap<String, String>> loadData() {
		names=new String[]{"can","pppbc","pbc","lhc","can","小火山"};
		listItem=new ArrayList<HashMap<String,String>>();
		//遍历数组
		for(int i=0;i<names.length;i++){
			HashMap<String,String> map=new HashMap<String,String>();
			String name=names[i];
			map.put("ItemName", name);//以键值对的形式保存
			listItem.add(map);//将HashMap添加到list中
		}
		return listItem;
	}
}

          





      

 

目录
相关文章
|
6月前
|
数据库 Android开发
Android使用EditText+Listview实现搜索效果(使用room模糊查询)
本文介绍如何在Android中使用EditText与ListView实现搜索功能,并结合Room数据库完成模糊查询。主要内容包括:Room的模糊查询语句(使用`||`代替`+`号)、布局美化(如去除ListView分割线和EditText下划线)、EditText回车事件监听,以及查询逻辑代码示例。此外,还提供了相关扩展文章链接,帮助读者深入了解ListView优化、动态搜索及Room基础操作。
481 65
|
2月前
|
存储 消息中间件 人工智能
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
128 4
|
9月前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
301 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
存储 数据库 Android开发
安卓Jetpack Compose+Kotlin,支持从本地添加音频文件到播放列表,支持删除,使用ExoPlayer播放音乐
为了在UI界面添加用于添加和删除本地音乐文件的按钮,以及相关的播放功能,你需要实现以下几个步骤: 1. **集成用户选择本地音乐**:允许用户从设备中选择音乐文件。 2. **创建UI按钮**:在界面中创建添加和删除按钮。 3. **数据库功能**:使用Room数据库来存储音频文件信息。 4. **更新ViewModel**:处理添加、删除和播放音频文件的逻辑。 5. **UI实现**:在UI层支持添加、删除音乐以及播放功能。
|
11月前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
1111 11
|
API Android开发 开发者
`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView
【6月更文挑战第26天】`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView。它提供高效的数据视图复用,优化的布局管理,支持多种布局(如线性、网格),并解耦数据、适配器和视图。RecyclerView的灵活性、性能(如局部刷新和动画支持)和扩展性使其成为现代Android开发的首选,特别是在处理大规模数据集时。
281 2
|
Android开发 开发者 UED
Android项目架构设计问题之加载数据到列表如何解决
Android项目架构设计问题之加载数据到列表如何解决
95 0
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
727 3
|
存储 API Android开发
29. 【Android教程】折叠列表 ExpandableListView
29. 【Android教程】折叠列表 ExpandableListView
1204 2
|
Android开发
Android获取蓝牙设备列表的方法
Android获取蓝牙设备列表的方法
906 5

热门文章

最新文章