【问题标题】:Handling multiple button clicks with Reactive bindings on Android在 Android 上使用 Reactive 绑定处理多个按钮点击
【发布时间】:2018-02-26 10:29:36
【问题描述】:

我需要在短时间内处理多个按钮点击,以便我需要获取用户在500ms 内点击的点击次数,以减少我对后端进行的 API 调用次数。

val buttonStream = view.plusButton.clicks()
buttonStream
        .buffer(buttonStream.debounce(500, TimeUnit.MILLISECONDS))
        .map { it.size }
        .subscribe({ clicks ->
            Log.i(TAG, "Number of clicks: $clicks")
        })

我已经实现了上面的代码,但是当我点击按钮时它没有显示任何内容。当我删除 .buffer(buttonStream.debounce(500, TimeUnit.MILLISECONDS)) 并添加 .buffer(500, TimeUnit.MILLISECONDS) 时,日志开始每 500 毫秒打印一次。有什么方法可以完成我的工作吗?

【问题讨论】:

    标签: android kotlin rx-java2 rx-android rx-binding


    【解决方案1】:

    通过以下代码设法得到预期的结果。

    val buttonStream = view.plusButton.clicks()
            buttonStream
                    .buffer(1000, TimeUnit.MILLISECONDS)
                    .map { it.size }
                    .filter { size -> size > 0 }
                    .subscribe({ clicks ->
                        Log.i(TAG, "Number of clicks from the QUICK_ADD: $clicks")
                        uploadWaterIntake(clicks)
                    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多