安卓开发实例———记事本

一.学习内容

  1. 数据库(SQLite)与列表(RecyclerView)的结合
  2. 使用记事的增、删、改、查
  3. 列表的更新
  4. RecyclerView不同视图(Linear和Grid)的绑定实现一个搜索框:SearchView的使用

二.学习过程

1.布局设计

 

 

 三,实现的效果

四 遇到的问题

1.Serializable主要作用将类的实例持久化保存,实现序列化

·可序列化的Java对象必须实现java.io.Serializable接口
·类似Serializable这样的空接口被称为“标记接口”(Marker Interface)
·反序列化时不调用构造方法
·可设置serialVersionUID作为版本号(非必需)
. Java的序列化机制仅适用于Java,如果需要与其它语言交换数据,必须使用通用的序列化方法,例如JSON

2.适配器的作用;能够把所携带的数据映射(或说是填充)到用户界面上 

3.安卓中如何查看数据库表新建成功

https://blog.csdn.net/weixin_43636084/article/details/123438999

4.数据传递 要先获取到数据 再传入视图 最后再有点击事件

 5.TextUtils   这个类 在android api 架构包 中 是主要来处理一些文本类的字符串信息的 

spfUtils 存储键值对的 

6.什么时候用SQLiteOpenHelper  在本例子中 在添加记事本的时候

就需要在此类中 添加内容 标题和创建时间 数据库设置好 再在addactivity里面进行引用

打开数据库,又牵涉到了不少细节。比如:

       1.  这个数据库是否存在?如果不存在,就要考虑先创建数据库,创建各种数据表。

       2.  这个数据库是否需要升级,比如目前的数据库结构已经不能满足我们的需求了,我们需要更改数据库的结构,这个时候就要先升级数据库,更新数据库的结构。

       3.  这个数据库是否之前已经打开?一般来说,我们操作数据库结束之后,需要关闭数据库,以节约资源。但是如果我们之前打开的数据库还要继续使用,这时候再执行打开操作时,直接返回这个数据库就行了。

       这些细节实现起来,还是挺繁琐的,然而这些逻辑都是套路,一招鲜吃遍天,不需要每次都从头写一遍。于是,是时候SQLiteOpenHelper出场了。

       SQLiteOpenHelper把打开数据库的一系列需要考虑到的细节逻辑都封装了起来,这也是为什么包含了Open这个单词的原因了。因为SQLiteOpenHelper的主要工作就是把打开数据库的逻辑帮我们实现了。

7.Cursor.moveToFirst()和Cursor.moveToNext()的疑惑

原来查询得到的cursor是指向第一条记录之前的,因此查询得到cursor后第一次调用moveToFirst或moveToNext都可以将cursor移动到第一条记录上。

源码中这些moveXXX其实都是通过moveToPosition来实现的,而记录position的是一个整型变量mPos。当moveXXXX返回false的时候,mPos会被置为-1,也就是回到了初始状态,指向第一条记录之前。
8.游标查询数据库信息时,可先获取列号再获取列的信息

 9.写完数据库后去添加数据 刷新后无数据 是因为生命周期出现了问题

添加完毕后再执行已经不会再去oncreate方法了 需要去onresume 方法

10.数据列表不显示 刷新后 新添加的信息不显示 并循环写死的text(大问题) 这个真的要重视 每个id 对应的功能和位置 不然会获取到信息为null

11.ViewHolder的使用场景

ViewHolder通常出现在适配器里,为的是listview滚动的时候快速设置值,而不必每次都重新创建很多对象,从而提升性能

12.安卓LayoutInflater详解

具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate ()来载入; 2、对于一个已经载入的界面,就可以使用Activiyt.findViewById ()方法来获得其中的界面元素。

13.加入菜单和图标

菜单:在主方法中写上onCreateOptionsMenu方法

 图标; 

 13.查询语句中的参数解析

public Cursor   query  (String table, String[] columns, String selection, String[] selectionArgs, 
String groupBy, String having, String orderBy, String limit)

args 就是赋值 相当于where

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值