android开发--(SimpleAdapter)运用
SimpleAdapter的参数说明
第一个参数 表示访问整个android应用程序接口,基本上所有的组件都需要
第二个参数表示生成一个Map(String ,Object)列表选项
第三个参数表示界面布局的id 表示该文件作为列表项的组件
第四个参数表示该Map对象的哪些key对应value来生成列表项
第五个参数表示来填充的组件 Map对象key对应的资源一依次填充组件 顺序有对应关系
布局和上一篇一样,还是用ListView控件,显示方式不一样,上一篇使用BaseAdapter(),这篇使用SimpleAdapter();
效果如下

代码:
public class MainActivity extends Activity {
private ListView lv;
private SimpleAdapter mp;
//集合
private List<mess> messagetlist=new ArrayList<mess>();
private List<Map<String,Object>> messagetlist2=new ArrayList<Map<String,Object>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wei);
//循环读取数据,模仿数据库
for (int i = 0; i <50; i++) {
//定义一个界面与数据的混合体,一个item代表一行记录
Map<String,Object> item=new HashMap<String,Object>();
//一行记录,包含多个控件
item.put("img",R.drawable.lad);
item.put("name","少年");
item.put("mess","过的怎么样啊");
item.put("date","11-28");
messagetlist2.add(item);
}
//查找listView1对象
lv=(ListView)findViewById(R.id.listView1);
mp=new SimpleAdapter(this,
messagetlist2,//data 不仅仅是数据,而是一个与界面耦合的数据混合体
R.layout.img,
new String[]{"img","name","mess","date"},
new int[]{R.id.imageView1,R.id.name,R.id.mess,R.id.date});
lv.setAdapter(mp);
}
});
刷新Listview,这里是把少年改为青年
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parment, View view, int position,
long id) {
Map<String,Object> item=messagetlist2.get(position);
item.put("name","青年");
mp.notifyDataSetInvalidated();
}
长按Item,出现菜单栏,效果:

代码:
lv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu conMenu, View view , ContextMenuInfo info) {
conMenu.setHeaderTitle("操作");
conMenu.add(0, 0, 0, "标为未读");
conMenu.add(0, 1, 1, "置顶工作号");
conMenu.add(0, 2, 2, "取消关注");
conMenu.add(0,3,3,"删除该聊天");
}
});
可以去比较下BaseAdapter()和SimpleAdapter()的用法,看下你更适用于哪一种写法。
android开发--(SimpleAdapter)运用的更多相关文章
- Android开发系列(十九个):至SimpleAdapter设置样式
Adapter任务:在数据adapter处理后做.展会上的观点 对于一般ArrayAdapter供.传递给ArrayAdapter之后就能够在视图上用一个列表显示出这个字符串数组. 比例如以下边的代码 ...
- Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式
前言 啦啦啦~(博主每次开篇都要卖个萌,大家是不是都厌倦了呢~) 本篇博文希望帮助大家掌握 Broadcast 编程基础,实现动态注册 Broadcast 和静态注册 Broadcast 的方式以及学 ...
- Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现)
前言 啦啦啦~博主又来骚扰大家啦~大家是不是感觉上次的Android开发博文有点长呢~主要是因为博主也是小白,在做实验的过程中查询了很多很多概念,努力去理解每一个知识点,才完成了最终的实验.还有就是随 ...
- Android开发实例-健康食谱应用(一)
转载请注明出处:http://blog.csdn.net/einarzhang/article/details/44774635 本系列文章的重点是如何使用Android开发一个简单的健康食谱软件.使 ...
- android 28 SimpleAdapter
监听器返回fasle,则事件还会分发给其他监听器. SimpleAdapter是BaseAdapter的子类,对适配器进行了简化,数据的格式是List,List的元素必须是Map, public Si ...
- android开发_SimpleAdapter适配器
android开发_SimpleAdapter适配器 新建项目: 项目结构: drawable-hdpi文件夹中的图片是自己加入的.主要是在菜单选项中显示的图片: 运行效果: 代码部分: main ...
- 【转】Android开发笔记(序)写在前面的目录
原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...
- Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式
Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...
- 「Android 开发」入门笔记
「Android 开发」入门笔记(界面编程篇) ------每日摘要------ DAY-1: 学习笔记: Android应用结构分析 界面编程与视图(View)组件 布局管理器 问题整理: Andr ...
随机推荐
- SQL中case when then用法
sql语句判断方式之一Case.具有两种格式:简单的Case函数.Case搜索函数. 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' E ...
- flask开发遇到 Must provide secret_key to use csrf解决办法
开发flask的时候,遇到了 Must provide secret_key to use csrf错误提醒.原来是没有设置secret_key .在代码中加上 app.config['SECRET_ ...
- 与NS2一起度过第一个圣诞夜!(NS2入门学习参考资料)
Merry xmas! 安装好NS2后正式开始学习NS2啦,先转发一哥们的博客内容,慢慢看! 一). NS常用基本网站 1. 寻求问题答案最好的地方. http:/ ...
- Xcode与OX 版本对照表
xcode1.0-xcode2.x 版本 OS X运行版本 OS X SDK(s) 1.0 OS X Panther(10.3.x) OS X Puma(10.1.x),OS X Jaguar(10. ...
- python3.2 + PyQt4界面开发hello world
需要先安装python3.2 然后安装python3.2对应的PyQt4界面库版本 import sys from PyQt4 import QtGui , QtCore app = QtGui.QA ...
- Mini2440 LED驱动程序设计
1 LED初始化: 2 LED闪烁设计 位或操作:| 取反操作:~ 位与操作:& http://www.tuicool.com/articles/eQzEJv
- Hibernate一对多 特殊的数据类型的注解
1.String 类型 @ElementCollection(targetClass = String.class,fetch = FetchType.EAGER) @CollectionTable( ...
- SPOJ QTREE Query on a tree
题意:给一颗n个点的树,有两种操作CHANGE i ti : 把第i条边的权变为tiQUERY a b : 问点a 到 点b 之间的边的最大权 思路:树剖处理边权.由于是边,所以只需要把边权处理到子节 ...
- 各种Linux发行版本优缺点对比[转]
转自:http://www.zzbeidaqingniao.com/linux/20100127/1495.html linux最早由Linus Benedict Torvalds在1991年开始编写 ...
- Ubuntu 系统密码相关问题
第一个问题: Ubuntu 密码失效解决办法 拷贝:http://www.myexception.cn/operating-system/1707766.html ubuntu14.04突然不能登录, ...