Android知乎日报开发

一. 项目问题

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音乐播放器,同样需要数据库对数据的保存还有修改。今天所需要的是知乎日报中收藏需要对数据的持久化。取消收藏是对数据进行删除,在删除的时候会遇到一个常见的问题就是,如果没有数据的话你进行删除会出现项目的运行错误。现在在高级阶段感觉每天所学到的东西真的每天都比一天多。需要对每天的知识点进行消化,积累多了两天就很多知识点就无法消化了。安卓的学习是无止境的很多的是需要坚持积累。
 
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。