現在の 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
私は何を間違っていますか?