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