Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RX java/Android如何使用debounce操作符在每次点击时实现此toast_Java_Android_Kotlin_Rx Java_Rx Android - Fatal编程技术网

RX java/Android如何使用debounce操作符在每次点击时实现此toast

RX java/Android如何使用debounce操作符在每次点击时实现此toast,java,android,kotlin,rx-java,rx-android,Java,Android,Kotlin,Rx Java,Rx Android,我有一个ImageView,点击它应该会显示toast,也会在点击图像视图时生成api,所以我决定在Rx中使用Debounce操作符 但现在thost并不是每次点击都可见。下面是代码 cartSubscriptionDecrement = RxView.clicks(holder.databinding .cartQuantityLayout.ivDecreaseQuantity) .debounce(1000, TimeUnit.MILLISEC

我有一个ImageView,点击它应该会显示toast,也会在点击图像视图时生成api,所以我决定在Rx中使用Debounce操作符 但现在thost并不是每次点击都可见。下面是代码

cartSubscriptionDecrement = RxView.clicks(holder.databinding
            .cartQuantityLayout.ivDecreaseQuantity)
            .debounce(1000, TimeUnit.MILLISECONDS)
            .subscribe { next ->
   cartQuantityEvent.onCartQuantityDecremented(cartSubscriptionDecrement!!)
            }
我需要在每次单击imageView时显示toast

我试图为图像视图使用一个单独的onclick方法,但在调试过程中,我发现该控件从未出现在onclick方法中这是我的另一个onclick方法


如何在每次单击时实现此toast,而不是在每次单击时进行api调用(使用Debounce运算符)。

您必须将“.subscribeOn(AndroidSchedulers.mainThread())”应用于所有RxBinding事件,例如“RxView.clicks()”

有多种方法可以满足您的要求。我在下面列出了最简单的例子,但需要更多地考虑使用doOnNext的潜在副作用

刚刚意识到包名是错误的,但是这个例子可以正常运行

下面是与示例最相关的代码。关键是,你需要在展示祝酒词之后而不是之前去抖

RxView.clicks(image1)
            .doOnNext(imageClickedEvent -> {
                // Show toast every time onNext is called (this will also log to LogCat)
                showToast();
            })
            .debounce(1000, TimeUnit.MILLISECONDS)
            .subscribe(clickEvent -> {
                makeApiCall();
            });
我试图为图像视图使用一个单独的onclick方法,但在调试过程中,我发现该控件从未出现在onclick方法中这是我的另一个onclick方法


我相信是这样的,因为RxClicks在ImageView上设置了一个侦听器,这发生在框架设置onClick侦听器之后,如果我回忆正确,那么在
视图上只能有一个
OnClickListener
。因此,
RxView.clicks(imageView)
接收的是click事件,而不是您单独创建的方法

holder.deleteCartIcon!!。setOnClickListener{v->Log.e(“单击”、“单击”)}上面是另一个onclick方法