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()吗?
从评论:
本CharSequence该textChanges给你的是可变的,应该成为String它传承下去之前。
textChanges给您相同的CharSequence参考,并且distinctUntilChange依靠它Object.equals()会一直与自己相等。
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |