3

現在の Android アプリケーションで RxBinding を使用しており、テキスト検索機能を実装したいと考えています。

私のコードは次のとおりです: -

compositeDisposable.add(RxTextView.textChangeEvents(searchEditText)
                .skipInitialValue()
                .subscribeOn(Schedulers.io())
                .debounce(200, TimeUnit.MILLISECONDS)
                .filter(textViewTextChangeEvent -> (textViewTextChangeEvent.text().length() == 0 || textViewTextChangeEvent.text().length() > 2))
                .map(event -> event.text().toString())
                .distinct()
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(charactersResponse -> {
                    articlesLiveData = viewModel.textSearch(charactersResponse);
                    textLiveData.removeObserver(TextFragment.this);
                    textLiveData.observe(TextFragment.this, TextFragment.this);
                }));

個別の値のみを検索したいのですが、上記のコードでは検索リクエストが重複しています。

重複した文字列を個別に削除しないのはなぜですか?

たとえば、検索 EditText に「chilian」と入力すると、

私の検索コードは次の文字列で呼び出されます

chi
chi
chil
chil
chil
chile
chile
chilea
chilean
chilean

私は何を間違っていますか?

4

1 に答える 1