一. 项目问题java
1. Banner自动滚动,当Banner不可见时,屡次切换Fragment,FC
缘由:系统组件之间的冲突
规避:1) 当Banner可见时自动滚动
2) 当Banner不可见时中止自动滚动
延迟加载LazyLoad
参考ApiDemo中的List13.java
解决步骤:
1) 监听ListView的滚动事件
2) 非手动,而且可见才自动滚动
ww.23code.com
2. 布局事件穿透
场景:当使用FrameLayout或层叠布局时,上层布局中若是某处没有控件,
用户点击事件会透传到下层
解决:
二. 项目功能
1. 收藏(浏览历史)
分析
1) 收藏:详情页菜单
2) 查看:收藏片断中
3) 取消:详情页菜单
设计
数据持久化
1) InternalStorage
/data/data/packagename/files
2) ExternalStorage
SDCard /mnt/sdcard/
场景:文件较大 游戏数据包 图片缓存
3) SharePreferences
/data/data/packagename/share_prefs
场景:较小、键值对形式 用户设置
4) SQLite
/data/data/packagename/databases
场景:数据量较大、数据结构相似,频繁增/删/改/查
联系人、短信、图片、音频、视频
5) Web
URL
场景:用户在任何设备上均可以查看
分类:
1) 服务端
2) 客户端
复习:
SQLite使用步骤
1) 继承SQLiteOpenHelper
2) 建立Helper , helper.getWritableDatabase()
3) db.execSQL(sql)
db.rawQuery()
关系型数据库
面向对象
4) ORM 对象关系映射
db.insert()
db.delete()
db.update()
db.query()
2. ORM框架
Ormlite
GreenDao
ActiveAndroid
3. ActiveAndroid库的使用步骤:
1) 建立Application,初始化ActiveAndroid
2) 建立一个类,继承Model,设置与数据库表名和列名的映射
3) 经过save()方法保存数据
4. ActiveAndroid更多方法
1) 删除
2) 查
3) 修改
4) 批量插入
5) 设置数据库的文件名和版本号
全部的IO操做都是耗时的
5. 收藏功能
1) 编写数据库操做工具类
2) 在详情页菜单点击事件中调用
3) 从列表Fragment传递Story对象到详情页
6. 取消收藏
1) 在DBManager中增长删除收藏数据库的方法
2) 增长判断某条数据在数据库中是否存在的方法
3) 增长一个切换收藏状态的方法
4) 在详情页面调用
7. 使用同一个对象反复插入删除的问题
现象:第二次以后插入数据失败
缘由:ActiveAndroid不支持同一个对象屡次插入
解决:使用克隆对象
重写Story类的clone()方法
常见问题
1. 使用ActiveAndroid,建立Model时没有添加无参数的构造方法
constructor:构造方法
心得体会:
安卓的开发学习已经有3个多月了,从中已经学到了不少,也有不少的不懂,今天主要是用到了数据库,数据库也是以前所学到SQLite,要对数据库的增删改查要比较的熟悉,数据的持久化的经常使用的几种。无论是在那个项目都须要用到数据库,以前我所作的QQ音乐播放器,一样须要数据库对数据的保存还有修改。今天所须要的是知乎日报中收藏须要对数据的持久化。取消收藏是对数据进行删除,在删除的时候会遇到一个常见的问题就是,若是没有数据的话你进行删除会出现项目的运行错误。如今在高级阶段感受天天所学到的东西真的天天都比一天多。须要对天天的知识点进行消化,积累多了两天就不少知识点就没法消化了。安卓的学习是无止境的不少的是须要坚持积累。