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

       

 

 

 

 

  

 

  

转载于:https://www.cnblogs.com/Jason-Jan/p/7134841.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用SQLiteOpenHelper类来创建和管理SQLite数据库,然后使用Cursor类来查询数据库。最后将查询结果加入到ListView显示即可。需要注意的是,需要自定义Adapter来适配ListView和Cursor之间的数据。 ### 回答2: Android 数据库 SQLite 是 Android 平台上的一个轻量级数据库,它没有独立的服务进程,完全由 Android 应用程序管理,运行在应用程序进程的主线程,可以存储小型数据量。而 ListView 是一种常见的列表布局,可以用于展示一系列数据。 将 SQLite 查询结果显示到 ListView ,我们需要进行以下步骤: 1.定义 SQLite 数据库Android 项目,我们通常使用 SQLiteOpenHelper 来管理 SQLite 数据库。我们首先需要在项目定义一个 SQLiteOpenHelper 类,它负责创建和更新 SQLite 数据库: ``` public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "myDatabase.db"; private static final int DATABASE_VERSION = 1; public MyDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表 db.execSQL("create table user (_id integer primary key autoincrement, name text, age integer)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 更新表 db.execSQL("drop table if exists user"); onCreate(db); } } ``` 以上代码创建了一个名为 myDatabase.db 版本号为 1 的数据库,其包含一个名为 user 的表,表包含 _id、name 和 age 三个字段。 2.插入数据 接着我们需要向数据库插入一些数据: ``` private void insertData() { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "Tom"); values.put("age", 20); db.insert("user", null, values); values.clear(); values.put("name", "Jerry"); values.put("age", 21); db.insert("user", null, values); } ``` 以上代码向 user 表插入了两条数据。 3.查询数据并显示到 ListView 接下来,我们需要从 SQLite 数据库查询数据,并且将查询结果显示到 ListView : ``` private void queryData() { SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("user", null, null, null, null, null, null); List<Map<String, Object>> list = new ArrayList<>(); while(cursor.moveToNext()) { Map<String, Object> map = new HashMap<>(); map.put("name", cursor.getString(cursor.getColumnIndex("name"))); map.put("age", cursor.getInt(cursor.getColumnIndex("age"))); list.add(map); } cursor.close(); SimpleAdapter adapter = new SimpleAdapter(this, list, android.R.layout.simple_list_item_2, new String[] {"name", "age"}, new int[] {android.R.id.text1, android.R.id.text2}); listView.setAdapter(adapter); } ``` 以上代码首先从 user 表查询所有数据,将查询结果保存到 list 。逐个遍历查询结果,将每一行数据封装成一个 Map 对象,再将其添加到 list 。最后将 list 数据显示到 ListView 。 至此,我们已经完成了将 SQLite 查询结果显示到 ListView 的整个过程。关键是对 SQLiteOpenHelper、ContentValues、Cursor、SimpleAdapter 等类的使用,需要程序员对 Android 开发常用的类有深入的了解。 ### 回答3: Android开发,SQLite数据库是一种非常常见的数据存储方式。在应用程序查询数据库并把数据显示到ListViewAndroid开发的基本操作之一,其实现过程如下: 1.建立数据库 SQLiteOpenHelper是一个用于管理数据库的帮助类。我们可以在该类定义数据库的创建和更新。在该类创建数据库表和进行表结构的修改。 2.进行数据库查询 要访问和查询数据库,需要使用可读数据库对象。我们可以利用SQLiteOpenHelper类的getReadableDatabase()方法获取可读数据库对象。然后执行SQL查询。 3.创建ListView列表布局 创建一个ListView对象,在通过SimpleAdapter适配器将查询到的数据绑定到ListView。SimpleAdapter是一个适配器类,用于将数据库查询结果转换为列表视图数据项。我们可以将其实例化,并通过setAdapter()方法设置给ListView对象。 4.获取列表的点击事件 当用户点击ListView的某个数据项时,需要获取该操作并执行相应操作。为ListView添加setOnItemClickListener()方法即可监听用户操作。 5.完善UI界面 根据需要对ListView界面进行美化,并添加数据更新、删除等操作的实现。 总之,通过SQLiteOpenHelper和SimpleAdapter的帮助,我们可以轻松地将SQLite数据库数据查询并显示到ListView。这种基本操作在Android应用程序开发非常常见,是开发Android数据库应用程序的关键技能之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值