|
|
|
@ -31,11 +31,27 @@ import net.micode.notes.data.Notes.NoteColumns;
|
|
|
|
|
import net.micode.notes.data.Notes.TextNote;
|
|
|
|
|
import net.micode.notes.tool.ResourceParser.NoteBgResources;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @ProjectName: xiaomibianqian
|
|
|
|
|
* @Package: model
|
|
|
|
|
* @ClassName: WorkingNote
|
|
|
|
|
* @Description: 创建了一个正在工作的便签类,其中有大量的参数,包括参量类、布尔值类、区分类的变量
|
|
|
|
|
* 另外,封装了一系列的函数,其中有返回私有变量的,与数据库进行操作的,在不同情况下操作的(如新建的便签与修改的便签)
|
|
|
|
|
* 主要交互的包、类:NoteEditActivities,Notes(from data)Note NoteListActivity SqlData
|
|
|
|
|
* 另外,有创建一些接口,比如NoteSettingChangedListener,在NoteEditActivities中具体实现
|
|
|
|
|
*
|
|
|
|
|
* @Author: zhoushiyu_br
|
|
|
|
|
* @CreateDate: 2023.12.16
|
|
|
|
|
* @UpdateUser: 更新者:
|
|
|
|
|
* @UpdateDate: 2023.12.21
|
|
|
|
|
* @UpdateRemark: 更新说明:
|
|
|
|
|
* @Version: 这次更新主要是修改了之前代码批注不够规范的问题,结合上课毛教员对于问题的指出,对格式进行了优化——PickupRAIN
|
|
|
|
|
*/
|
|
|
|
|
public class WorkingNote {
|
|
|
|
|
// Note for the working note
|
|
|
|
|
//这个在Note里面定义了Note类的基本类型
|
|
|
|
|
private Note mNote;
|
|
|
|
|
|
|
|
|
|
private Note mNote;//这个在Note里面定义了Note类的基本类型,
|
|
|
|
|
// Note Id
|
|
|
|
|
private long mNoteId;
|
|
|
|
|
// Note content
|
|
|
|
@ -44,27 +60,32 @@ public class WorkingNote {
|
|
|
|
|
private int mMode;
|
|
|
|
|
|
|
|
|
|
private long mAlertDate;
|
|
|
|
|
//最后的修改日期
|
|
|
|
|
private long mModifiedDate;
|
|
|
|
|
//定义的颜色的ID
|
|
|
|
|
private int mBgColorId;
|
|
|
|
|
//定义了一个int类型,用来定位到哪一个小组件被使用
|
|
|
|
|
private int mWidgetId;
|
|
|
|
|
//定义了一个int类型,用来区分使用了什么类型的小组件
|
|
|
|
|
private int mWidgetType;
|
|
|
|
|
//用来定位便签放在哪个文件夹
|
|
|
|
|
private long mFolderId;
|
|
|
|
|
|
|
|
|
|
private long mModifiedDate;//最后的修改日期
|
|
|
|
|
|
|
|
|
|
private int mBgColorId;//定义的颜色的ID
|
|
|
|
|
|
|
|
|
|
private int mWidgetId;//定义了一个int类型,用来定位到哪一个小组件被使用
|
|
|
|
|
|
|
|
|
|
private int mWidgetType;//定义了一个int类型,用来区分使用了什么类型的小组件
|
|
|
|
|
|
|
|
|
|
private long mFolderId;//用来定位便签放在哪个文件夹
|
|
|
|
|
|
|
|
|
|
private Context mContext;
|
|
|
|
|
//定义为静态变量,保证不能再被更改。防止数据出现异常
|
|
|
|
|
private static final String TAG = "WorkingNote";
|
|
|
|
|
//定义一个布尔变量,用来保存是否要被删除。通过查看用法,发现在后面保存|修改的时候要进行判断。
|
|
|
|
|
private boolean mIsDeleted;
|
|
|
|
|
//后面定义的,暂时还不知道是啥,貌似是个接口
|
|
|
|
|
private NoteSettingChangedListener mNoteSettingStatusListener;
|
|
|
|
|
//定义一个数组,保存DataColumn数组当中的一些列变量。关于DataColumn的注解我写在了定义处。
|
|
|
|
|
//之所以用一个字符串数组来调用DataColumn接口,是为了“方便在进行数据库操作时可以一次性指定需要查询的列”?
|
|
|
|
|
//不过他只在定义cursor的时候调用了就是了。
|
|
|
|
|
|
|
|
|
|
private static final String TAG = "WorkingNote";//定义为静态变量,保证不能再被更改。防止数据出现异常
|
|
|
|
|
|
|
|
|
|
private boolean mIsDeleted;//定义一个布尔变量,用来保存是否要被删除。通过查看用法,发现在后面保存|修改的时候要进行判断。
|
|
|
|
|
|
|
|
|
|
private NoteSettingChangedListener mNoteSettingStatusListener;//定义了一个接口,具体是在NoteEditActivities中实现,实现对于便签是否修改的监听
|
|
|
|
|
/**
|
|
|
|
|
* 定义一个数组,保存DataColumn数组当中的一些列变量。关于DataColumn的注解我写在了定义处。
|
|
|
|
|
* 之所以用一个字符串数组来调用DataColumn接口,是为了“方便在进行数据库操作时可以一次性指定需要查询的列”?
|
|
|
|
|
* 这个数组只有在loadNoteData这个函数的时候进行了调用。将数据加载到
|
|
|
|
|
* 12.22更新,我学习了getContentResolver()的用法
|
|
|
|
|
* 实际上,getContentResolver是用来查询数据库的,这里定义的Projection是所有属性的集合。数据库查询,按列进行
|
|
|
|
|
* 在按列查询时,在数据库访问到底,只需要在数组中继续访问即可。关于函数详解我会写在函数的定义处;
|
|
|
|
|
*/
|
|
|
|
|
public static final String[] DATA_PROJECTION = new String[] {
|
|
|
|
|
DataColumns.ID,//在Note里面定义一个接口类型
|
|
|
|
|
DataColumns.CONTENT,
|
|
|
|
@ -131,6 +152,18 @@ public class WorkingNote {
|
|
|
|
|
loadNote();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author: zhoushiyu_PickupRAIN
|
|
|
|
|
* @methodsName: loadNote
|
|
|
|
|
* @description: 创建游标,对数据库进行操作。首先从传入的URI中找到数据库地址,对元素数组进行逐列筛选。
|
|
|
|
|
* @param: 虽然没传入,,但是说明一下
|
|
|
|
|
* ->Notes.CONTENT_NOTE_URI:数据库的地址,根据URI找到相应数据库
|
|
|
|
|
* ->NOTE_PROJECTION :属性列表,包含了所有的表头
|
|
|
|
|
* ->这里就能很容易理解为什么NOTE_PROJECTION为什么只在这里调用,也没有初始化。
|
|
|
|
|
* @return: String
|
|
|
|
|
* @throws: Nopes
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
private void loadNote() {
|
|
|
|
|
//定义一个cursor游标,用来操作数据。这里传入了很多量,如URI、Id、和来自Projection的一系列。
|
|
|
|
|
Cursor cursor = mContext.getContentResolver().query(
|
|
|
|
|