关于SimpleAdapter和ListView结合使用,实现列表视图的笔记
使用ListView需要为其添加适配器:
适配器有两种:1.ArrayAdapter --用于单独文字显示
2.SimpleAdapter --用于文字和图片显示
这里主要记录SimpleAdapter:
先看SimpleAdapter的构造函数:
SimpleAdapter(context,data,resource,from,to)
--context:上下文,其实就是指的activity本身
--data:数据源:一个包含了map的List集合;List里的每一个元素都是一个Map集合,Map是包含多组键值对
--resource:布局文件,可以自己写,在R.Layout下可以获得,布局中对应元素的总和,全部可以储存在Map中
--from:一个String[]数组,对应Map中的key元素的,类似于起名字
--to:在从Map中获取对应key的值后,储存进去具体的值
下面是具体的例子
工具:Android studio
首先写布局文件:item.xml,存放在layou文件夹下
<?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:id="@+id/itempic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:src="@mipmap/ic_launcher" /> <TextView
android:id="@+id/itemtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="demo"
android:textSize="40sp" />
</LinearLayout>
在MainActivity下实例接收ListView和SimpleAdapter对象
private ListView listView;
// private ArrayAdapter<String> adapter;
private SimpleAdapter si_adapter;
//list集合是抽象集合,实例化其实例对象ArrayList
private List<Map<String,Object>> simpleData; protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.listView);
simpleData=new ArrayList<Map<String,Object>>();
si_adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"pic","text"},new int[]{R.id.itempic,R.id.itemtext});
listView.setAdapter(si_adapter);
}
上面的getdate()方法:
public List<Map<String,Object>> getData(){
for(int i=0;i<20;i++){
Map<String,Object> map=new HashMap<String,Object>();
//填入真实的pic信息
map.put("pic",R.mipmap.ic_launcher);
//填入真实的text信息
map.put("text","机器人"+i+"号");
simpleData.add(map);
}
return simpleData;
}
将SimpleAdapter适配器添加到ListView中去。
分析:SimpleAdapter对数据的解析
布局文件:决定的数据的视图化呈现方式
from:为每一个元素限定一个特定的符号
to: 每一个元素在XML中的对应情况
data:数据源,将用于被解析
关于SimpleAdapter和ListView结合使用,实现列表视图的笔记的更多相关文章
- Android应用开发学习之列表视图
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 列表视图我们会经常用到,可以通过两种方式来创建列表视图,一种方式是直接使用ListView组件创建,另一种方式是通过 ...
- 列表视图QlistView
列表视图QlistView要配合setModel模型一起使用 例子一 QStringListModel() 字符串列表模型 import sys from PyQt5.QtWidgets impor ...
- 滚动视图、列表视图[ListView、SimpleAdapter类]
滚动视图 <ScrollView android: layout_width="fill_parent" android: layout_height="fill_ ...
- 列表视图(ListView和ListActivity)
在ListView中显示网络图片 ImageView 类虽然有一个 setImageUri 方法,但不能直接接受一个由网络地址生成的uri作为参数从而显示图片,我们只好使用其 setImageBitm ...
- Android 自学之列表视图ListView和ListActivity
ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...
- 使用SimpleAdapter创建ListView
通过ArrayAdapter实现Adapter虽然简单.易用,但ArrayAdapter的功能比较有限.它的每个列表只能是TextView.如果开发者需呀实现更复杂的列表项,则可以考虑使用Simple ...
- Android ListView 列表视图
列表显示的三个元素 ListView : 用来显示列表的View Adapter : 适配器 用来把数据映射到ListView 上的中介 Data: 数据 将被映射的字符串,图片或者基本组件等资源 根 ...
- Android——列表视图(ListView)
列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项.在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建:另外一种是让Activ ...
- React-Native基础_5.列表视图ListView
列表视图ListView 用来显示垂直滚动列表,需要指定两个东西,1 数据的来源 dataSource,2 渲染列表的条目布局 rendRow 'use strict' import React, { ...
随机推荐
- vs2017 rc 离线安装包制作
vs2017 rc 离线安装包制作 1.下载在线安装包:https://aka.ms/vs/15/release/vs_Enterprise.exe 2.制作离线安装包: vs_Enterprise. ...
- 开发socketserver 以及定制开发自己的FTP服务器
socket server 示例 #服务端程序 import socketserver class TcpHandler(socketserver.BaseRequestHandler): def h ...
- jquery option
转--jquery动态添加option示例 http://www.jb51.net/article/45031.htm //js动态添加option var sel= document.getElem ...
- cocos2d-x3.x自定义事件
-- 自定义事件 -- 监听: local eventDispatcher = self:getEventDispatcher();--self为继承Node的对象 local function ha ...
- LAMP(1) 在VirtualBox里安装Ubuntu Server
问题0.虚拟机中安装lamp环境 问题解决: 来自百度经验 问题1. 用putty远程登陆linux系统,显示network error connection refused 问题解决 问题2. my ...
- js时间戳与日期格式之间的转换
转换方法: var date = new Date(时间戳); //获取一个时间对象 注意:如果是uinx时间戳记得乘于1000. 比如php函数time()获得的时间戳就要乘于1000 //获取时 ...
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...
- php实现文件上传与下载(中)
出现不想让用户看见的信息,可以使用错误抑制符号@:当然能echo的东西都是可以赋值给一个变量的: 定义用户上传文件类型,将其放在数组变量allowExt中,用if(!in_array(第一个参数为获取 ...
- checkbox做全选按钮
1.先写一个html页面,里面写一个全选按钮和几个复选框,实现下面2个要求 (1)点击全选按钮选中时,所有的复选框选中. (2)点击全选按钮取消选中时,所有复选框取消选中. <input typ ...
- springmvc @responsebody 406/415问题解决
提供几个解决思路 1.如果项目中用的spring jar包是4.x版本, 需要jackson-annotations-2.x/jackson-core-2.x/jackson-databind-2.x ...