Android 数据库中的数据给到ListView
前言:因为之前学的都是用一个自己定义的类,完成将某一个bean中的数据直接获取,而实际中通常是通过数据库来得到的,总之,最终就是要得到数据。提一下最重要的东西,我把它叫做代理,如同一个校园代理,没有他很多事情都做不了,这个东西就是游标适配器--CursorAdapter
1.首先讲一个故事。
onCreate()梦开始了,ListView最初是没有数据的,内心十分空荡。
ListView: 嘿,适配器,可以给我前5个数据吗?我要充实一下自我。
CursorAdapter: 兄弟,没问题,我现在就去取。
CursorAdapter: 嘿,游标,我需要前5个数据,帮我取一下。
游标: 好的,才5个数据,我会马上传给你。
真正的用户不会满足5个数据,用户会往下滑,希望看到更多的数据。
-----手机屏幕监听用户往下滑动-----ListView率先知道,他去问适配器-----适配器去请求游标-----游标去查数据库
2.SimpleCursorAdapter将数据映射到视图
SimpleCursorAdapter它的老板是CursorAdapter ,就是用来做苦力的。实际的作用是:实现列表视图显示游标数据。
SimpleCursorAdapter首先问一下游标有哪些列,然后它仔仔细细地把每一列都找到对应的TextView和ImageView,生怕出乱子。
(1)首先肯定要存在这么一个游标,而且要有唯一的一个_id列,就是为了保证数据不会很紊乱,也方便查找数据。
cursor=db.query("Person",new String[]{"_id","name"},
null,null,null,null,null) //意思就是我要Person表中_id列,name列的所有数据,后面那些null为条件,这里就不管什么条件,也就是所有列都要给霸道的游标
(2)创建游标适配器-----CursorAdapter派了一个员工来-----SimpleCursorAdapter来处理一些事情。 联系点在第四个参数和第五个参数,String[] fromColumns决定了数据库表中的那些列,int[] toViews对应布局中的唯一id ,这样就联系起来了!
(3)关闭游标和数据库c
当你打扰他人时,离开的时候,有素质的人都会帮忙关一下门。否则陌生人随便进来就惨了,东西不见造成内存泄露,把危险品带进来造成线程阻塞等等意想不到的事情,所以出以礼貌的原因,我们最后一步会简简单单地close
super.onDestroy();-----主人送你到门口
cursor.close();-----在数据库里面游荡的线人先出来,不然就永远地长眠于大数据中了
db.close();-----游标出来后,可以放心的关上门了
3.最后整理一下思路,不然就被绕晕了
以一个故事完美结束。
onCreate()...梦开始了。因为这个活动有点特殊,由一个ListActvity老板举行,所以它可以直接通过一个getListView()函数得到一个列表。
SQLiteOpenHelper随之率先引领潮流,获得一个数据库的大宝藏。
宝藏藏在一座山中,数据库委员会决定派一个游标cursor来查找这个宝藏的下落。
这个小游标找到了宝藏,但是太重了,他一个人完全无法搬运,所以它找来了一个适配器SimpleCursorAdapter来帮助他将宝藏搬出去。
这个时候,ListActivity老板发现了他们肮脏的交易,然后他也拍了一批人,直接将宝藏转移到自己的适配器上面了。
这些宝藏分了好几批,运过来了。主活动对每一批宝藏都进行了严格的监视,所以就产生了一个每一列的监听器。
所以现在有人要借用宝藏,更新宝藏,使用宝藏,数据库委员会都进行了严格的记录。以便于其他活动正确执行。
4.滴答滴答,梦结束了。晚安了。-----2017-7-8 0:31
Android 数据库中的数据给到ListView的更多相关文章
- C#-WinForm-ListView-表格式展示数据、如何将数据库中的数据展示到ListView中、如何对选中的项进行修改
在展示数据库中不知道数量的数据时怎么展示最好呢?--表格 ListView - 表格形式展示数据 ListView 常用属性 HeaderStyle - "详细信息"视图中列标头的 ...
- 【Android Developers Training】 26. 在SQL数据库中保存数据
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 将Oracle数据库中的数据写入Excel
将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...
- java更改数据库中的数据
不废话,上代码 package com.ningmeng; import java.sql.*; /** * 1:更改数据库中的数据 * @author biexiansheng * */ publi ...
- Eclipse中java向数据库中添加数据,更新数据,删除数据
前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据. 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息) package com.ning ...
- phpexcel的写操作将数据库中的数据导入到excel中
这个版本据说是可以支持excel2007,但是我使用2007编辑的xlsx是无法获得该库的支持.于是乎我就将它转化为2003.感觉支持地很好. 下面介绍一下具体的使用: require_once('. ...
- 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...
- 怎样在C#中从数据库中读取数据(数据读取器)
实现在C#中通过语句,查询数据库中的数据 SqlConnection con = null; //创建SqlConnection 的对象 try //try里面放可能出现错误的代码 ...
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...
随机推荐
- sqlalchemy使用tip
https://docs.sqlalchemy.org/en/latest/orm/tutorial.html http://docs.sqlalchemy.org/en/latest/core/sq ...
- 利用XShell和WinSCP连接本机和Linux虚拟机——Kali部署
1.XShell支持在本机直接连接Linux终端,加快速度,支持命令的复制粘贴 2.WinSCP 支持本机与Linux的文件复制粘贴 关键:使用SSH协议,所以要在Linux开启ssh服务,下面以Ka ...
- RF脚本中的坑1: SyntaxError: invalid token
话不多说,直接上调试脚本: 执行后${b}=8:没问题.然后${a}改成08继续: 执行后居然报错了: 经过多次尝试08或者09时,都会报SyntaxError错误:后来查阅语法,才恍然大悟:Pyth ...
- IOS 读取xib到tabelView
/**每一行显示怎样的ceLl*/ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIn ...
- POJ-3009 Curling 2.0---DFS求最短路
题目链接: https://vjudge.net/problem/POJ-3009 题目大意: 问题:打冰球.冰球可以往上下左右4个方向走,只有当冰球撞到墙时才会停下来,而墙会消失.当冰球紧贴墙时,不 ...
- B. Qualifying Contest_排序
B. Qualifying Contest time limit per test 1 second memory limit per test 256 megabytes input standar ...
- python web应用--WSGI接口(二)
WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求.我们来看一个最简单的Web版本的“Hello, web!”: 1 # server.py 2 # 从wsgiref模 ...
- HttpServletRequest request 获取form参数的两种方式
@RequestMapping(value="/pay",method = RequestMethod.POST) public String buildRequest(HttpS ...
- 运行时库例程-acc_get_num_devices
格式C 或 C++: int acc_get_num_devices( acc_device_t ); 描述例程 acc_get_num_devices 返回主机上指定类型的加速器设备数量.输入参数说 ...
- C#面向对象的基本概念
“面向对象=对象+类+继承+通信”.如果一个软件系统使用了这样四个概念进行设计和实现,我们就可以认为这个软件系统是面向对象的. 一.一切都是对象 1. 对象概述 对象可以表示几乎所有的实物和概念.比如 ...