一、一些概念的回顾与补充:
1. 抽象类:
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。
抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
2. 在面向对象的编程中,把用类创建对象的过程称为实例化。通常是使用有参数或无参数的构造方法来创建对象。其基本格式如下:
类名 对象名=new 类名(......);
3. context(https://www.jianshu.com/p/94e0f9ab3f1d)
Android应用模型是基于组件的应用设计模式,组件的运行要有一个完整的Android工程环境,在这个环境下,Activity、Service等系统组件才能够正常工作,而这些组件并不能采用普通的Java对象创建方式,new一下就能创建实例了,而是要有它们各自的上下文环境,也就是我们这里讨论的Context。可以这样讲,Context是维持Android程序中各组件能够正常工作的一个核心功能类。
ContextWrapper:上下文封装器,contextlmpl:上下文模型。
Context在程序中,我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。比如微信聊天,此时的“环境”是指聊天的界面以及相关的数据请求与传输,Context在加载资源、启动Activity、获取系统服务、创建View等操作都要参与。
比如一个Activity就是一个Context,一个Service也是一个Context。Android程序员把“场景”抽象为Context类,他们认为用户和操作系统的每一次交互都是一个场景,比如打电话、发短信,这些都是一个有界面的场景,还有一些没有界面的场景,比如后台运行的服务(Service)。一个应用程序可以认为是一个工作环境,用户在这个环境中会切换到不同的场景,这就像一个前台秘书,她可能需要接待客人,可能要打印文件,还可能要接听客户电话,而这些就称之为不同的场景,前台秘书可以称之为一个应用程序。
源码中的注释是这么来解释Context的:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型,是一个统领一些资源(应用程序环境变量等)的上下文。
就是说,它描述一个应用程序环境的信息(即上下文);是一个抽象类,Android提供了该抽象类的具体实现类;通过它我们可以获取应用程序的资源和类(包括应用级别操作,如启动Activity,发广播,接受Intent等)。
4.view:控件
二、SharedPreferences存储
不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的。也就是保存一条数据需要提供一个对应的键。
多用PreferenceManager类的getDefaultSharedPreferences()方法。
(CheckBox:复选框)
三、SQLite数据库存储
通过SQLiteOpenHelper帮助类能对数据库进行创建和升级,它也是一个抽象类。所以需要一个自己的帮助类去继承它,同时OnCreate()、onUpgrate()也必须在自己的帮助类里面重写。
两个重要的实例方法:getReadableDatabase()、getWritableDatabase()用于创建或打开一个现有的数据库。
CRUD:见书即可。
四、LItePal(推荐)
1.需要引入开源库。
2.需要配置好LitePal
3.LitePal采取的是对象关系映射(ORM)的模式。
4.定义一个类(Java Bean)添加到映射模型列表中
5.CRUD:见书即可