zoukankan      html  css  js  c++  java
  • Android EditText 试用RxJava搜索框延时搜索

    使用RxJava能够更简单的监听EditText文本变化,即使用debounce操作符处理不断产生的文本变化事件。试用Handler 会造成内存泄漏,所以推荐使用RxJava的方法

    debounce操作符对源Observable每产生一个结果后,如果在规定的间隔时间内没有别的结果产生,则把这个结果提交给订阅者处理,否则忽略该结果。

    RxTextView.textChangeEvents(etClearSearch)
            .debounce(300, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<TextViewTextChangeEvent>() {
            @Override
            public void onCompleted() {
    
            }
    
            @Override
            public void onError(Throwable e) {
    
            }
    
            @Override
            public void onNext(TextViewTextChangeEvent textViewTextChangeEvent) {
                //自己要操作的。。。
            }
    });
    
    

    或者

    RxTextView.textChanges(clearSerach)
            .map(CharSequence::toString)
            .debounce(300, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(input -> {
                  String keyword = clearSerach.getText().toString().trim();
                  EventBus.getDefault().post(new MessageEvent(INSURANCE_SEARCH, keyword));
            });
    
  • 相关阅读:
    SCP 命令
    linux下IPTABLES配置详解
    Linux rpm 命令参数使用详解
    Linux(Centos7)yum安装最新redis
    YUM常用命令介绍
    Centos7下Yum安装PHP5.5,5.6,7.0
    腾讯云CentOS7.0使用yum安装mysql
    如何在CentOS 6.5上升级PHP
    第一个Python程序
    Python简介及环境部署
  • 原文地址:https://www.cnblogs.com/wxianing/p/14981219.html
Copyright © 2011-2022 走看看