Я новичок в программировании и в Android-разработчике, в настоящее время я пытаюсь использовать библиотеку Room.У меня есть модель заметки, как код ниже:
@Entity(tableName = "note_table")
public class Note {
@PrimaryKey(autoGenerate = true)
private int id;
private String title;
private String description;
private int priority;
public Note(String title, String description, int priority) {
this.title = title;
this.description = description;
this.priority = priority;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
public String getDescription() {
return description;
}
public int getPriority() {
return priority;
}
}
NoteDAO:
@Dao
public interface NoteDao {
@Insert
void insert(Note note);
@Update
void update(Note note);
@Delete
void delete(Note note);
@Query("DELETE FROM note_table")
void deleteAllNotes();
@Query("SELECT * FROM note_table ORDER BY priority DESC")
LiveData<List<Note>> getAllNotes();
}
и NoteDatabase:
@Database(entities = {Note.class}, version = 1)
public abstract class NoteDatabase extends RoomDatabase {
private static NoteDatabase instance;
public abstract NoteDao noteDao();
public static synchronized NoteDatabase getInstance(Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(),
NoteDatabase.class, "note_database")
.fallbackToDestructiveMigration()
.addCallback(roomCallback)
.build();
}
return instance;
}
private static RoomDatabase.Callback roomCallback = new RoomDatabase.Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
super.onCreate(db);
new PopulateDbAsyncTask(instance).execute();
}
};
private static class PopulateDbAsyncTask extends AsyncTask<Void, Void, Void> {
private NoteDao noteDao;
private PopulateDbAsyncTask(NoteDatabase db) {
noteDao = db.noteDao();
}
@Override
protected Void doInBackground(Void... voids) {
noteDao.insert(new Note("Title 1", "Description 1", 1));
noteDao.insert(new Note("Title 2", "Description 2", 2));
noteDao.insert(new Note("Title 3", "Description 3", 3));
return null;
}
}
}
Я хочу сохранить объект заметки в локальномиспользуя базу данных room, но я хочу разделить ее на две группы: первая называется RecommendedNote
, а другая - LikedNote
Я хочу сохранить список заметок ArrayList в локальной базе данных, используя roomа затем позже я могу использовать его в любом месте моего приложения.
Если я использую пакет для передачи небольших данных между действиями, или использую общие предпочтения, я могу поставить идентификатор, но я не знаю, как сохранить и отделитьэти две группы заметок в базе данных комнаты
какой лучший способ сделать это?мне нужно сделать разные колонны, разные таблицы или базы данных?Я в замешательстве