简介
实现了NotePad的基础功能时间戳和搜索,扩展了UI美化。
可能bug及解决方式
- 下载源码解压并在AndroidStudio中打开后,点击build可能会报错
此时,在build.gradle中添加 google();
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:7.0.2"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
mavenCentral ()
maven {
url 'https://dl.bintray.com/jetbrains/anko'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
修改 gradle 文件夹下的 gradle-wrapper.properties 的 distributionUrl 属性为
https://services.gradle.org/distributions/gradle-7.0.2-bin.zip
然后检查SDK版本
修改app下build.gradle的SDK版本一致
功能代码详解
时间戳功能
- 在主页面的每个列表项中添加时间戳的位置,即在notelist_item.xml布局文件中添加一个
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="12dp"
android:gravity="center_vertical"
android:paddingLeft="10dip"
android:singleLine="true"
android:layout_weight="1"
android:layout_margin="0dp"
/>
- 需要修改这个方法中的时间戳格式
NotePadProvider中的insert方法:
Long now = Long.valueOf(System.currentTimeMillis());
//修改 需要将毫秒数转换为时间的形式yy.MM.dd HH:mm:ss
Date date = new Date(now);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
String dateFormat = simpleDateFormat.format(date);
//转换为yy.MM.dd HH:mm:ss形式的时间
if(values.containsKey(NotePad.Notes.COLUMN_NAME_CREATE_DATE) == false) {
values.put(NotePad.Notes.COLUMN_NAME_CREATE_DATE, dateFormat);
}
if (values.containsKey(NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE) == false) {
values.put(NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE, dateFormat);
}
NoteEditor中的updateNote方法:
long now = System.currentTimeMillis();
Date date = new Date(now);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
String dateFormat = simpleDateFormat.format(date);
values.put(NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE, dateFormat);
- NoteList的修改
如果我们要加入时间戳,必须要将修改时间的列也投影出来. 所以我们将PROJECTION添加上修改时间:
private static final String[