我正在制作TODO应用。我有一个导航抽屉,其中包含工作,个人等项目。当您单击工作时,它打开工作片段,您可以在其中添加任务。同样适用于个人。在工作和个人if ... else ...
中,我将TODO列表存储在Fragment
数据库中。我是否需要为每个片段创建一个单独的表?
现在我只创建了一个表,当我添加一个任务时,它会被添加到Work和Personal。
TaskContract.java
SQLite
TaskDBHelper.java
public final class TaskContract {
private TaskContract(){}
public static final String CONTENT_AUTHORITY="com.example.android.tasks";
public static final Uri BASE_CONTENT_URI=Uri.parse("content://"+CONTENT_AUTHORITY);
public static final String PATH_TASKS="tasks";
public static final class TaskEntry implements BaseColumns{
public static final Uri CONTENT_URI=Uri.withAppendedPath(BASE_CONTENT_URI,PATH_TASKS);
public static final String CONTENT_LIST_TYPE=
ContentResolver.CURSOR_DIR_BASE_TYPE+"/"+CONTENT_AUTHORITY+"/"+PATH_TASKS;
public static final String CONTENT_ITEM_TYPE=
ContentResolver.CURSOR_ITEM_BASE_TYPE+"/"+CONTENT_AUTHORITY+"/"+PATH_TASKS;
public static final String TABLE_NAME="tasks";
public static final String _ID=BaseColumns._ID;
public static final String NAME="taskname";
public static final String DUEDATE="duedate";
public static final String DUETIME="duetime";
}
}
TaskProvider.java
public class TaskDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME="list.db";
private static final int DATABASE_VERSION=1;
public TaskDBHelper(Context context) {
super(context, DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String SQL_CREATE_TABLE="CREATE TABLE "+TaskContract.TaskEntry.TABLE_NAME+
" ("+TaskContract.TaskEntry._ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"
+TaskContract.TaskEntry.NAME+" TEXT NOT NULL, "
+TaskContract.TaskEntry.DUEDATE+" TEXT, "
+TaskContract.TaskEntry.DUETIME+" TEXT);";
db.execSQL(SQL_CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
这是我的数据库和表创建代码。我应该为每个片段创建这些类。请帮忙? 我的应用与Google Keep应用类似
答案 0 :(得分:0)
这不是为每个片段创建表的好方法。数据库设计应独立于为其创建的视图。因此,您可以使用相同的表格根据表格字段显示不同的视图。
我认为你需要数据库架构设计来建立一个好的数据库。您可以参考此链接 - Where to find practical well-designed database schema examples to learn from?
在您的问题的上下文中,您将有一个表作为节点',它将具有所有任务类型的公共列。假设,个人任务'类型包括“工作”的提醒时间不一样。然后,你创建提醒'存储' node_id'的表随着时间的推移。通过这种方式,确定应用程序所需的表格和列。
您必须根据应用要求决定database schema
。
希望这会有所帮助。