RxAndroid和按钮事件?

问题描述 投票:3回答:2

任何人都知道如何使用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'

想法有人吗?

android rx-android
2个回答
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
投票

此外,如果您想要改进事件以避免多次点击,您可以使用:

@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");
      });
© www.soinside.com 2019 - 2024. All rights reserved.