Компонент Android Architechture LiveData Изменение данных

Я начал работать над компонентом архитектуры Android, представленным недавно.

DataLiveList.getPhotoDataList().observe(PhotosFragmentNew.this, new Observer<List<PhotoDataLive>>() {
        @Override
        public void onChanged(@Nullable List<PhotoDataLive> photoDataLives)    {

        } 

    });

Моя проблема в том, что я просто хочу, чтобы последний добавленный элемент не был списком всех элементов в базе данных, во-вторых, я хочу знать автоматически сгенерированный идентификатор для новой модели, каков наилучший способ получить этот идентификатор при вставке элемента.

1 ответ

Я делал это неправильно, как мой метод

DataLiveList.getPhotoDataList()

Возвращает список, то есть мой класс DAO имеет запрос select * из PhotoModel, мне просто нужно было написать другой метод в классе DAO

@Query("Select * from photomodel order by Id desc limit 1")
LiveData<photomodel> getLatestAddedItem();

и теперь, когда я меняю следующее

DataLiveList.getPhotoDataList().observe(PhotosFragmentNew.this, new Observer<List<PhotoDataLive>>() {
    @Override
    public void onChanged(@Nullable List<PhotoDataLive> photoDataLives)    {

    } 

});

к

DataLiveList.getLatestAddedItem().observe(PhotosFragmentNew.this, new Observer<PhotoDataLive>() {
    @Override
    public void onChanged(@Nullable PhotoDataLive photoDataLives)    {

    } 

});

Это приведет к тому, что я хотел

Другие вопросы по тегам