我在当前的 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 中输入“chilean”时
我的搜索代码是用以下字符串调用的
chi
chi
chil
chil
chil
chile
chile
chilea
chilean
chilean
我究竟做错了什么?