Поиск предмета с идентификатором в Room db и получение его в ViewModel - PullRequest
0 голосов
/ 08 марта 2020

У меня есть приложение, которое представляет список заметок пользователя в MainActivity. Я хочу от go до SecondActivity, когда пользователь нажимает на один из пунктов. В SecondActivity должно отображаться содержимое заметки.
Мне нужно получить идентификатор элемента и отправить его на SecondActivity. Я могу сделать это с помощью этого запроса:

@Query("SELECT id FROM notes WHERE id == :id")
    Note getNote(int id);

Но я не знаю, что делать в ViewModel. Я создал класс, расширяющий AsyncTask, который запускает метод getNote (). Я должен вернуть эту заметку AsyncTask, но поскольку этот класс не создается в Activity, я не могу использовать onPostResult. после создания AsyncTask что мне нужно сделать?

это мой ViewModel:

public class NoteViewModel extends AndroidViewModel {

    private NoteRepository repository;
    private LiveData<List<Note>> allNotes;


    public NoteViewModel(@NonNull Application application) {
        super(application);
        repository = new NoteRepository(application);
        allNotes = repository.getAllNotes();
    }

    LiveData<List<Note>> getAllWords() {
        return allNotes;
    }
    public void insert(Note note) {
        repository.insert(note);
    }
    public void delete(Note note) {
        repository.deleteNote(note);
    }

}

и это Примечание:

@Entity(tableName = "notes")
public class Note {

    @PrimaryKey(autoGenerate = true)
    public int id;

    private String title;
    private String text;

    public Note(String title, String text) {
        this.title = title;
        this.text = text;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

}
...