1.数据库操作
使用SQLiteOpenHelper进行数据库的创建和升级过程,需要合理处理需要保存的对象和各种数据表之间的关系,升级的时候如果修改了数据表的的结构,那么在升级的时候需要在升级的地方修改数据表结构,但是可能由于数据的问题需要填充缺少的数据,所以最好选用直接删除原始数据表然后重新建表,这样虽然丢失了原来的数据,但是至少可以保持项目的干净。
出现过的错误:
(1):
定义了表和条目的静态变量名,那么在编写创建数据库的语句的时候,需要严格保证该有的空格不要缺少,有时候:
特别是这些静态变量后面的语句和它之间必须有空格,我在最后一个CONTENT后的TEXT之前少过空格,在代码中找了半天找不到问题,最后是导出数据库之后才发现有一个contentText的条目,这才找到问题。
2.ViewPager操作
在Adapter中为生成每个Pager的Fragment进行setArgument来返回一个fragment,这样在这个fragment中就可以获取这个argument中的参数。
3.Http类
封装了网络请求 ,使用的是基本的HttpURLConnection的操作,setRequestMethod设置的是GET,setRequesProperty可以设置如何伪装浏览器。
其他的类似合成URL的方法就是根据网络请求的API来定义的了。
4.task目录下的所有类
这个目录下的所有类都是为获取数据而服务的,基类来源于MyAsyncTask,实现了两个抽象-BaseHttpTask(用于将Html转换为可供显示的标记),BaseGetNewsTask(主要用于管理保存数据和更新UI的监听)
AccelerateGetNewsTask:快速获取数据,使用第三方库直接将json数据转换成相关的Java类对象。
OriginalGetNewsTask:原始数据的处理,不使用第三方库解析json
SaveNewsListTask:主要用于更新数据库,将得到的数据更新写入数据库。
5.Adapter
最近常用的Adapter一般都是用于ListView,但是使用的是RecyclerView,RecyclerView可以自定义布局管理器,并能更好的进行内存管理
常用的ListView第三方库是StickyListHeadersAdapter,这个项目是有可浮动的ListView的Title。