[android] 常用数据适配器SimpleAdapter详解手机开发
2023-06-13 09:20:13 时间
当我们的列表包含图片和文字信息时,ArrayAdapter就无法实现了,使用SimpleAdapter,activity中findViewById()获取到ListView对象,调用ListView对象的setAdapter()方法,参数中传入SimpleAdapter对象。每一条数据是一个Map集合,所有的数据是一个List集合
new SimpleAdapter(context,data,resource,from,to)
context上下文,data数据集合List Map String,Object ,resuorce布局资源,from是String[]是数据中Map集合的key,to是int[]是布局文件中key对应的控件的资源id
Data数据,先new出来ArrayList 再new出来HashMap,调用HashMap对象的put()方法放入键值对,图标的放入资源id R.drawable.xxxx,调用ArrayList对象的add()方法加入Map对象
SimpleAdapter的源代码,构造函数,把data,resource,from,to对象赋值给成员变量,通过Context对象的getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法获取LayoutInflater布局填充器对象赋值给成员变量。同样有getCount()方法和getView()方法,getView()中进行处理取出单条Map对象,根据to这个资源id的int[] 获取控件然后进行绑定。
activity代码:
package com.tsh.myadapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView lv_list=(ListView) findViewById(R.id.lv_list); List Map String, Object data=new ArrayList Map String,Object (); Map String,Object map1=new HashMap String,Object (); map1.put("tv_name","电话"); map1.put("iv_icon", R.drawable.ic_menu_call); Map String,Object map2=new HashMap String,Object (); map2.put("tv_name","短信"); map2.put("iv_icon", R.drawable.ic_menu_btn_add); Map String,Object map3=new HashMap String,Object (); map3.put("tv_name","摄像"); map3.put("iv_icon", R.drawable.ic_menu_camera); data.add(map1); data.add(map2); data.add(map3); lv_list.setAdapter(new SimpleAdapter(this, data, R.layout.list2_item, new String[]{"tv_name","iv_icon"}, new int[]{R.id.tv_name,R.id.iv_icon})); }
5491.html
app程序应用开发手机开发无线开发移动端开发相关文章
- android进阶之了解Android系统与开机过程
- delphixe5 android,Delphi XE5 Android手机端转换Ansi字符串
- android sdk安装过程,图文详解Android 3.0 SDK安装教程
- android定时器取消,Android定时器崩溃取消
- android scaleanimation动画,Android 的ScaleAnimation 缩放动画基本运用
- 手机数据丢失,如何恢复?FonePaw Android Data Recovery Mac版
- Android Studio 中编辑Groovy 脚本 给钉钉机器人发消息
- 【Android 应用开发】Android 图表绘制 achartengine 示例解析
- 【Android 高性能音频】AAudio 音频流 缓冲区 简介 ( AAudio 音频流内部缓冲区 | 缓冲区帧容量 | 缓冲区帧大小 | 音频数据读写缓冲区 )
- 【Android 高性能音频】Oboe 开发流程 ( Oboe 音频帧简介 | AudioStreamCallback 中的数据帧说明 )
- 【Android 逆向】使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )
- Android控制文字水平间距android:letterSpacing详解手机开发
- Android开发中遇到的问题(三)——eclipse创建android项目无法正常预览布局文件详解手机开发
- Android开发中遇到的问题(二)——新建android工程的时候eclipse没有生成MainActivity和layout布局详解手机开发
- [android] 看博客学习Android常见的几种RuntimeException详解手机开发
- [android] 数据的异步加载和图片保存详解手机开发
- [android] 采用GET方式提交数据到服务器详解手机开发
- Android入门之数据传递详解手机开发
- android抓屏详解手机开发
- 眼萌(Android) v1.0体验版发布:让您用最舒服的姿势抢红包