RxAndroid和按钮事件?

时间:2015-10-01 23:09:06

标签: android rx-android

任何人都知道如何使用RxAndroid点击按钮点击一下?

不,这不是重复的。太多了。

我试过了:

  • Events.click()...已被删除
  • RxTextView.editorActions()...假设工作,因为TextView是Button的超类......没有从中获取任何事件
  • ViewObservable.clicks()....已被移除或移至RxBindings(据说,但我找不到它!)

我的Gradle依赖项是:

compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'
compile 'com.jakewharton.rxbinding:rxbinding:0.2.0'

想点什么?

2 个答案:

答案 0 :(得分:6)

从0.3.0开始,您需要使用RxView.clicks()。以下是记录点击的示例。

 RxView.clicks(button).subscribe(new Action1<Void>() {
            @Override
            public void call(Void aVoid) {
                // Replace below with your click handling code
                Log.d(TAG, "Clicked");
            }
        });

答案 1 :(得分:1)

此外,如果您想改善活动以避免多次点击,您可以使用:

@BindView(R.id.my_button)
Button myButton;

RxView.clicks(myButton)
      .throttleFirst(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread())
      .subscribe(s -> {
            // Do anything when I do click  
            Log.d(TAG, "Clicked");
      });