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

时间: 2024-12-04 10:40:00

Android知乎日报开发的相关文章

Android知乎日报开发过程

一. 项目问题 1. 侧滑菜单全屏幕显示 1) SlidingMenu 兼容低版本实现侧滑菜单 2) MaterialDrawer 5.0风格 https://github.com/mikepenz/MaterialDrawer 参考:Gmail.Inbox.GoogleMap.GooglePlay FQ:赛风.VPN 2. TweenAnimation动画监听 3. TweenAnimation来回移动 4. 多个库都需要在Application中初始化 Volley和UIL 将Applica

微信小程序开发日记——高仿知乎日报(上)

本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教程分为以下三篇 微信小程序开发日记--高仿知乎日报(上) 微信小程序开发日记--高仿知乎日报(中) 微信小程序开发日记--高仿知乎日报(下) 三篇分别讲不同的组件和功能块 这篇要讲 API分析 启动页 轮播图 日报列表 浮动按钮 侧滑菜单 API分析 以下是使用到的具体API,更加详细参数和返回结

android版知乎日报客户端应用源码

如你所见,这是一个知乎日报客户端,我给它起名为:知乎小报,大家可以下载安装体验一下,见附件.IOS版本源码:http://code.662p.com/view/9004.html因为有大把的时间需要在地铁上度过,而我又喜欢知乎日报中的内容,于是就想自己也开发一个知乎日报的客户端,没有让人皱眉的启动页广告,没有应用推荐,没有后台的消息推送,只提供最初的阅读功能.经过了一段时间的开发,最初的设想已经全部完成: 最新新闻.过往的新闻的展示 下拉刷新数据 新闻正文的展示(WebView的各种使用) 正文

【android】使用RecyclerView和CardView,实现知乎日报精致布局

完整代码,请参考我的博客园客户端,git地址:http://git.oschina.net/yso/CNBlogs 在写博客园客户端的时候,突然想到,弄个知乎日报风格的简单清爽多好!不需要那么多繁杂的信息干扰视野. 先贴上效果图,左边是知乎日报的,右边是本方案的 本文所使用的ide是androidStudio 首先我们需要在项目中,引入RecyclerView.CardView 在build.gradle的 dependencies 添加两条引用语句,如 dependencies { compi

一个开源「知乎日报」Android 客户端

开源知乎日报客户端 - ZhihuPaper 介绍 如你所见,这是一个知乎日报客户端. 因为有大把的时间需要在地铁上度过,而我又喜欢知乎日报中的内容,于是就想自己也开发一个知乎日报的客户端. 经过了一段时间的准备,已经初具规模,实现了以下功能: 基础框架的搭建 列表展示当天的最新新闻 下拉刷新 正文信息展示 离线下载 还有以下功能等待实现: 下拉展示更多新闻 内容分享至SNS 正文中图片保存 无图模式开发 已读.未读 收藏夹 夜间模式 bug fix 本程序依赖: Croton SmoothPr

每一位Android开发者应该知道的Android体系架构和开发库

英文原文:Android Architecture and Libraries Every Android Developer Should Know Android 的体系架构鼓励组件重用,允许开发者发布共享 Activity.Service 并且访问其他应用程序的数据,还可以根据开发者制定的安全限制进行管理.话虽如此,今天我将分享一些关于 Android 架构和开发库信息,供开发者创建下一个杀手级应用使用.准备好了吗?请继续下面的阅读! 不要被上面的图片吓到,你无需了解所有内容. Andro

学习Android开源项目-根据知乎日报API分析重构一个简单的知乎日报Android客户端

从今天开始准备开始根据之前学习的知乎日报纯净版来实现一个自己的知乎日报客户端. 每次写完的代码都会更新在Github上,每次完成一个既定目标,完成之后当天完成目标的检查并根据错误进行最优化重构. 项目地址:https://github.com/wylhyz/ZhihuDialyPrue

Android-MVP+Retrofit+Rxjava实现一个知乎日报客户端

使用MVP+Retrofit+Rxjava实现一个知乎日报客户端,界面基于Material design,还没有全部完成orz,,放假太懒 效果图 开源项目 name introduction butterknife Annotate fields with @BindView and a view ID for Butter Knife to find and automatically cast the corresponding view in your layout. MaterialT

linux-mint下搭建android,angularjs,rails,html5开发环境

目录[-] 必备软件: 环境配置: [open-jdk-6.0] [android-sdk] [ant] [github] [node.js] [rvm](ruby-1.9.3 rails-4.0.0 gemfile) 必备概念: 关于自动化部署我推荐大家参谋一下Fortune Zhang的一篇文章:android开发过程中我是怎么一步步让项目自动化起来的 最新更新链接:https://gist.github.com/Channely/8296901 系统以64bit为例进行配置/2013/11