【发布时间】:2018-06-05 22:23:10
【问题描述】:
我有一个包含 CardView 的 RecyclerView 列表的应用程序。当用户输入一些数据时会创建一个 CardView,然后将数据保存在 SQLite 数据库中。当用户使用 Datepicker 为单个 CardView 输入日期时,SQLite 列“COLUMN_NOTIFTIME”使用模型类中的长“notiftime”保存系统时间(System.currentTimeMillis() + 2 小时)。我使用“notiftime”为用户触发通知。如果用户没有为 CardView 输入日期,我希望“COLUMN_NOTIFTIME”保持一个空值或其他一些指示符来显示没有数据。我知道 long 不能为空。那么,在用户没有为 CardView 输入任何日期的情况下,如何保存某种类型的值或指示符以显示“notiftime”为空?或者我应该将长“notiftime”更改为字符串并将系统时间 + 2 小时格式化为字符串,以便我可以使用 NULL、isEmpty()、isNull() 和 putNull()?
Model class:
public class CardViewItem {
private int id;
private String duedate;
private String duetime;
private long notiftime;
}
DB class:
public class SQLiteDB extends SQLiteOpenHelper {
...
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "(" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_DUEDATE + " TEXT," +
COLUMN_DUETIME + " TEXT," +
COLUMN_NOTIFTIME + " INTEGER" + ")";
}
【问题讨论】:
-
在这种情况下您可以存储 0 或 -1。然后你可以添加条件来检查它是否不是 0/-1。
-
@Psypher 很好,我会用。干杯。
标签: android sqlite null long-integer