Я новичок в Realm и не могу найти ничего связанного с этим в документации. Я пытаюсь создать метод, который получает указанный c объект из базы данных Realm по идентификатору, когда я его вызываю. Это выглядит так:
private var singleVendor: SingleVendor? = null
fun subscribeToVendor(
liveData: MutableLiveData<SingleVendor>,
id: Int
) {
singleVendor?.removeAllChangeListeners()
val singleVendor = getRealm().where(SingleVendor::class.java).equalTo("id", id).findFirstAsync()
singleVendor?.addChangeListener<SingleVendor> { _ ->
liveData.value = singleVendor
}
}
Это необходимо для VendorFragment, когда кто-то нажимает на поставщика в списке, я хотел бы получить указанные c данные о поставщике и обновить его с помощью VendorFragment. , Но когда я пытаюсь вызвать этот метод снова, singleVendor становится недействительным. Я использую LiveData здесь, потому что я хотел бы инкапсулировать Realm.
Я что-то упустил? Есть ли образец для этого? Заранее спасибо!