RxBinding的学习

参考链接:
http://www.jianshu.com/p/ded241051b61
http://www.jianshu.com/p/055002aaf1ca
http://www.jianshu.com/p/34cf96b72102

Android上我们很多时候通过匿名类的方式处理控件的响应事件,这样看起来有点繁琐。RxBinding采用响应式编程的方式来解决这个问题。

首先,添加依赖:

compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0'

我们先来看下以前处理按钮的方式是:

btnBind.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tvShow.setText("success");
            }
        });

现在通过RxBinding来处理:

disBtnBind = RxView.clicks(btnBind).subscribe(new Consumer() {
            @Override
            public void accept(Object o) throws Exception {
                tvShow.setText("success");
            }
        });
 
 

这是我们最普遍处理按钮点击事件的方式,是不是很简洁。

再来看下我们处理编辑框文本变换的事件:

disEtChange = RxTextView.textChanges(etChange)
                .map(new Function() {
                    @Override
                    public String apply(CharSequence s) throws Exception {
                        return new StringBuilder(s).reverse().toString();
                    }
                })
                .subscribe(new Consumer() {
                    @Override
                    public void accept(String s) throws Exception {
                        tvShow.setText("success: "+s);
                    }
                });

在操作过程中,我们还可以加入map等方法,对参数进行处理,这个在rxJava中我们以学习。

最后,不要忘记关闭,防止内存泄漏。

@Override
    protected void onDestroy() {
        super.onDestroy();
        disBtnBind.dispose();
        disEtChange.dispose();
    }

还有很多控件事件都可实现,可以去查看下。

你可能感兴趣的:(RxBinding的学习)