Фильтрация объектов внутри нескольких внутренних списков с помощью RxJava Android - PullRequest
0 голосов
/ 24 сентября 2019

Я должен реализовать опцию поиска в моем приложении.У меня есть список колледжа.В списке колледжей есть список курсов.Внутри списка курсов есть список студентов.Таким образом, в основном, если кто-то вводит какое-либо имя, результат поиска должен возвращаться в список тех колледжей, в котором есть это имя.Как я могу добиться этого, используя RxJava в моем приложении.Хотя я пробовал некоторый код, но не мог понять, как будет работать многоуровневый поиск.

Пример кода

@Override
public boolean onQueryTextChange(String query) {
    Observable<College> serviceObservable = Observable.fromIterable(serviceViewModel.getService()).subscribeOn(Schedulers.io()).filter(new Predicate<College>() {
        @Override
        public boolean test(College college) throws Exception {
            Observable<Course> courseObservable =  Observable.fromIterable( college.items).subscribeOn(Schedulers.io()).filter(new Predicate<Course>() {
                @Override
                public boolean test(Course course) throws Exception {
                    Observable<Student> studentObservable = Observable.fromIterable(course.getItems()).subscribeOn(Schedulers.io()).filter(new Predicate<Student>() {
                        @Override
                        public boolean test(Student student) throws Exception {
                            if (student.getName().contains(query)) return true;
                            else return false;
                        }
                    }) ;
                    return false;
                }
            });
            return false;
        }
    });

    return false;
}

Так что если кто-нибудь может мне помочь в этом.Как я могу это сделать?

...