第一次后Rxjava2distantUntilChanged()无法正常工作

Ash*_*tel 1 java android rx-java rx-java2

我正在尝试使用.distinctUntilChanged()它,并且不会switchmap()在第一次之后传递价值。

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());
        }));
Run Code Online (Sandbox Code Playgroud)

是正确的使用地点.distinctUntilChanged()吗?

aka*_*okd 7

从评论:

CharSequencetextChanges给你的是可变的,应该成为String它传承下去之前。

textChanges给您相同的CharSequence参考,并且distinctUntilChange依靠它Object.equals()会一直与自己相等。