应用总共有3个界面,支持增删改查操作。
①首先,打开应用将进入如下界面:
在这里可以新建日记。
②点击右上角竖着的“三个点”,弹出菜单,菜单选项分别是“查看日记”、“退出程序”。
③点击“查看日记”,则会进入如下的界面:
该界面的列表是运用RecyclerView来制作的。在该界面点击时间部分可以删除对应的记录。
④点击标题“抓射手”,则会进入到如下的详情界面:
在这里可以查阅日记的详情、可以对日记的标题和内容进行更改。
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
- "colorPrimary"
>@color/colorPrimary
- "colorPrimaryDark">@color/colorPrimaryDark
- "colorAccent">@color/colorAccent
style>
resources>
public class MySQLiteOpenHelper extends SQLiteOpenHelper
{
private String sql="create table Notepad(id integer primary key autoincrement,title text,body text,time text)";
private Context mContext;
//构造器
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
{
super(context, name, factory, version);
mContext=context;
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(sql);
Toast.makeText(mContext,"数据库创建成功!",Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
}
}
然后,就可以创建MySQLiteOpenHelper的对象了,代码如下;
MySQLiteOpenHelper mydb = new MySQLiteOpenHelper(context, "mydb", null, 1);
第一个参数是Context,第二个参数是数据库对应的文件名,第三个参
数允许我们在查询数据的时候返回一个自定义的 Cursor,一般都是传入 null ,第四个参数是数据库的版本号。
紧接着,利用MySQLiteOpenHelper对象的getReadableDatabase()方法去获取一个SQLiteDatabase对象,代码如下:
SQLiteDatabase sqLiteDatabase = mydb.getReadableDatabase();
SQLiteDatabase对象就是用来对数据库进行增删改查操作的。
public class ActivityCollector
{
public static List<Activity> activities = new ArrayList<>();
public static void addActivity(Activity activity)
{
activities.add(activity);
}
public static void removeActivity(Activity activity)
{
activities.remove(activity);
}
public static void finishAll()
{
for (Activity activity : activities)
{
if (!activity.isFinishing())
{
activity.finish();
}
}
activities.clear();
}
}
再写一个名为BaseActivity的类,代码如下:
public class BaseActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy()
{
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
然后让整个应用的活动去继承BaseActivity这个类,而不是去继承默认的AppCompatActivity。
在需要退出程序的地方加上下面的两行代码就行了:
ActivityCollector.finishAll();
Process.killProcess(Process.myPid());//杀掉当前进程
本应用是在“退出程序”的点击事件里面写了上面的两行代码的。
数据库表的结构比较简单,只有一张Notepad表,这张表有四个字段(列),具体情况如下表:
列名 | 数据类型 | 说明 |
---|---|---|
id | integer | 主键 |
title | text | 日记的标题 |
body | text | 日记的正文 |
time | text | 创建日记的时间 |
项目已经放到github上了:完整的项目github地址