Как использовать RxSearchView в rxjava - PullRequest
0 голосов
/ 21 октября 2019

Я использую rxjava в проекте MVVM, и я хочу использовать RxSearchView для поиска, но RxSearchView не работает и не получает строку при вводе текста в поисковом окне на панели инструментов, поэтому я не могу получить данные списка из API для отображения в программе повторного просмотра. это мой код в репозитории. Мой код правильный? а почему нельзя получить данные из searchview?

 disposable.add(
        publishSubject
            .debounce(300, TimeUnit.MILLISECONDS)
            .distinctUntilChanged()
            .switchMapSingle(object : Function<String,     Single<List<Contact>>> {
                override fun apply(t: String): Single<List<Contact>> {
                    return RetrofitContact.contactService
                        .getContacts(null, t)
                        .subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                }
            }).subscribeWith(getSearchObserve())
    )   

  disposable.add(
        RxSearchView.queryTextChanges(searchView)
            .debounce(300, TimeUnit.MILLISECONDS)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(searchContactsSearchWatcher())

   fun searchContactsSearchWatcher(): DisposableObserver<CharSequence>    {
    return object : DisposableObserver<CharSequence>() {
        override fun onComplete() {

        }

        override fun onNext(t: CharSequence) {
            publishSubject.onNext(t.toString())
            Log.d(Resource.TAG,"this is onNext for searchview and t =$t")
        }

        override fun onError(e: Throwable) {

        }

    }

}

   disposable.add(getSearchObserve())


    publishSubject.onNext("")
    return data
...