【问题标题】:RxSearchView after cleaning with backspace使用退格键清理后的 RxSearchView
【发布时间】:2017-11-20 11:29:55
【问题描述】:

我有 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();
            });

当我搜索单词testToast 显示test,之后我想使用退格键清除搜索文本,问题是当Toast 中的搜索为空时出现文本@ 987654328@.

如何解决这个问题?

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

【问题讨论】:

  • 你能发布一个带有这种行为的 gif/视频吗?从您的代码来看,它应该可以按预期工作。
  • @azizbekian 我添加了一个 gif 图片

标签: java android rx-java rx-android rx-binding


【解决方案1】:

问题是按顺序排列的。 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();
            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2016-02-10
    • 2021-10-16
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2011-02-05
    相关资源
    最近更新 更多