关于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, { ...
随机推荐
- redis学习笔记
Redis 命令 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. 语 ...
- Wpf usercontrol dispose
窗口关闭时组件"析构": public UserControl() { InitializeComponent(); ...
- <Script>放置位置
html文件是自上而下的执行方式 css引入执行加载时,程序仍然往下执行 script脚本是则中断线程,待该script脚本执行结束之后程序才继续往下执行 页面效果实现类的js放在body之前,动作, ...
- bzoj1415[NOI2005]聪聪和可可
之前做的一些图上的期望步数的题大多用到高斯消元来求解(HNOI游走,SDOI走迷宫,etc),因此我一开始做这道题的时候想偏了- 这道题的性质:聪聪和可可之间的最短路长度严格递减.因为聪聪总可以多走一 ...
- js小功能整理
/** * 判断是否包含字符串某字符串 * @param {[type]} str [被检测的字符串] * @param {[type]} substr [检测是否含有的字符串] * @return ...
- Smarty模版引擎的原理
Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...
- Win7硬盘整数分区一览表
10G=10245 MB 20G=20482 MB 30G=30726 MB 40G=40963 MB 50G=51208 MB 60G=61444 MB 70G=71681 MB 80G=81926 ...
- 对日期 ,和 master.dbo.spt_values 表操作
if object_id('tempdb..#xs') is not null drop table #xs; ), date datetime, sale float) insert into #x ...
- eclipse新建web项目开发JSP
1.创建项目:file---new--Dynamic Web Project 一直选next,到jsp文件目录所在地,打勾默认自动生成web.xml配置文件,也可以自己设置. 创建JSP文件: 选择创 ...
- WinForm下增加声音提示
在WinForm平台下播放声音,一般有两种方式:第一种是调用系统自带声音: [代码] 申明定义: [DllImport("kernel32.dll")] public static ...