Слушатель изменений Realm Query - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть следующий код в моей деятельности, где я пытаюсь получить данные из области, а затем отобразить их в списке. Я использовал слушателя, который работает отлично.

private RealmResults<Data> mData = repo.fetchData();
// internally the call is handled by
  realm.where(Data.class).findAllAsync();

mData.addChangeListener(data -> {
    // access to the data stored locally
    // receive updates in case data changes
    // set the data to the list
});

Позже в приложении я хочу также иметь возможность фильтровать вышеуказанные данные на основе введенной пользователем строки поиска и получать результаты в том же прослушивателе. Я пробовал следующий код.

mData = poiRepo.fetchData("query");

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

Чего я пытаюсь достичь.

mData.addChangeListener(data -> {
    // single place where filtered data is delivered and sent to recycler view
});

function a(){
    repo.fetchData( //filter parameters )
}

function b(){
    repo.fetchData( //filter parameters )
}

function c(){
    repo.fetchData( //filter parameters )
}
...