0

我有 RxSearchView:

RxSearchView.queryTextChanges(searchView)
            .filter(charSequence -> !TextUtils.isEmpty(charSequence))
            .debounce(600, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(query -> {
                Toast.makeText(this, query, Toast.LENGTH_SHORT).show();
            });

当我搜索单词时test,我想使用退格键清除搜索文本,问题是当搜索为空时Toast出现文本。testToastt

如何解决这个问题呢 ?

我试图使用.filter(item -> item.length() > 1),但这也不起作用,在这种情况下Toast出现在文本中te

在此处输入图像描述

4

1 回答 1

0

问题是按顺序排列的。 debounce必须在之前filter

这将起作用:

RxSearchView.queryTextChanges(searchView)
            .debounce(600, TimeUnit.MILLISECONDS)
            .filter(charSequence -> !TextUtils.isEmpty(charSequence))
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(query -> {
                Toast.makeText(this, query, Toast.LENGTH_SHORT).show();
            });
于 2017-11-21T10:38:49.860 回答