Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rxjava2 distinctUntilChanged()在第一次之后无法正常工作_Java_Android_Rx Java_Rx Java2 - Fatal编程技术网

Rxjava2 distinctUntilChanged()在第一次之后无法正常工作

Rxjava2 distinctUntilChanged()在第一次之后无法正常工作,java,android,rx-java,rx-java2,Java,Android,Rx Java,Rx Java2,我正在尝试使用.distinctUntilChanged(),并且在第一次使用后,它不会将值传递给switchmap() RxTextView.textChanges(etUserQuery).debounce(300, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()).filter(charSequence -> { if (charSequence.toString().isEmp

我正在尝试使用
.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());
        }));
使用
.distinctUntilChanged()
是否正确?

来自注释:


CharSequence
传递给您的
textChanges
是可变的,应该在传递之前转换为
String


textChanges
为您提供相同的
CharSequence
参考和
distinctUntilChange
依赖
对象。equals()
将发现它始终等于自身。

注释:


CharSequence
传递给您的
textChanges
是可变的,应该在传递之前转换为
String


textChanges
根据
Object.equals()提供相同的
CharSequence
引用和
distinctUntilChange
将发现它始终与自身相等。

文本更改提供的
字符序列
是可变的,在传递之前应转换为
字符串
。非常感谢。我刚刚添加了
.map(CharSequence::toString)
我认为它可以工作。那么
distinctUntillChanged()
只对不可变发射有效吗?你能解释一下吗@akarnokd
textChanges
根据
Object.equals()为您提供相同的
CharSequence
引用和
distinctUntilChange
将发现它始终等于它本身。textChanges提供给您的
CharSequence
是可变的,应该在传递之前转换为
String
。非常感谢。我刚刚添加了
.map(CharSequence::toString)
我认为它可以工作。那么
distinctUntillChanged()
只对不可变发射有效吗?你能解释一下吗@akarnokd
textChanges
为您提供相同的
CharSequence
引用和
distinctUntilChange
依赖
Object.equals()
将发现它始终等于自身。