Можно ли использовать SingleLiveEvent с Room в Android?
Я возился с SingleLiveEvent
, Можно ли использовать его с базой данных комнат? Я попытался использовать его и получил сообщение об ошибке сборки Not sure how to convert a Cursor to this method's return type
, Есть ли обходные пути здесь? У меня есть крайний случай, где я хотел бы использовать его!
1 ответ
SingleLiveEvent
является MutableLiveData
который LiveData
, Вы можете вернуться List<LiveData<YourData>>
из комнаты с запросом выбора, который вызывается в рабочем потоке. Нет необходимости работать с курсорами в комнате. получить List<LiveData<YourData>>
и на соблюдайте метод отправки List<YourData>
в обязательный класс или RecyclerView
, Каков ваш крайний случай необходимости курсора?
Предостережение. Настоятельно не рекомендуется работать с API-интерфейсом Cursor, поскольку он не гарантирует, существуют ли строки или какие значения содержат строки. Используйте эту функцию, только если у вас уже есть код, который ожидает курсор и который вы не можете легко изменить.
Тем не менее, вы можете получить это с
@Dao
public interface MyDao {
@Query("SELECT * FROM user WHERE age > :minAge LIMIT 5")
public Cursor loadRawUsersOlderThan(int minAge);
}