0
.distinctUntilChanged()
を使用しようとしていて、初めて値の後にswitchmap()
に値を渡しません。Rxjava2 distinctUntilChanged()が初めて初めて正しく動作しない
RxTextView.textChanges(etUserQuery).debounce(300, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread()).filter(charSequence -> {
if (charSequence.toString().isEmpty()) {
etUserQuery.setHint("Please type username");
return false;
} else
return true;
}).distinctUntilChanged()
.switchMap(charSequence -> vm.dataFromNetwork(charSequence.toString()))
.subscribe(fetchUserResponce -> {
noDataText.setVisibility(fetchUserResponce.getItems().size() == 0 ? View.VISIBLE : View.GONE);
mUsersListAdapter.updateData(fetchUserResponce.getItems());
}));
.distinctUntilChanged()
を使用するのは正しいですか?コメントから
textChangesが提供する 'CharSequence'は変更可能で、渡される前に' String'に変換される必要があります。 – akarnokd
ありがとうございました。私は '.map(CharSequence :: toString)'を追加しました。 –
したがって、 'distinctUntillChanged()'は不変の発光に対してのみ機能しますか?あなたは説明していただけますか? @akarnokd –