RxJava实例-按钮点击数累加
来源:互联网 发布:html编程 编辑:程序博客网 时间:2024/06/05 16:10
RxJava实例
RxJava实例-线程切换
效果图
说明
在一定时间内(3s),对点击按钮的次数进行累计,每点击一下,输出一条log,当时间到时(3s),会输出这段时间内点击的次数
buffer操作符
实现这种效果的办法当然有很多种,这里用RxJava的buffer操作符来简单写一个demo。
这张图简单明了,不用多说。
实现方式
之前参考的代码用的是RxBinding实现的,逻辑非常清晰,这里就不用RxBinding了。
既然要点击,那么应该要在每次点击的时候,输出一条log到屏幕,并且在时间到的时候,输出这段时间点击的总次数。
主要代码
private void countTaps() { Observable .create(new Observable.OnSubscribe<Boolean>() { @Override public void call(final Subscriber<? super Boolean> subscriber) { mBtnStartBufferTaps.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { log("点击了按钮"); mTvTapsCounter.setText(String.valueOf((++counter))); subscriber.onNext(true); } }); } }) .buffer(3, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<Boolean>>() { @Override public void onCompleted() { log("subscriber -> onCompleted"); } @Override public void onError(Throwable e) { log("subscriber -> onError:" + e.getMessage()); } @Override public void onNext(List<Boolean> list) { if (list.size() != 0){ log("点击了" + list.size() + "次"); mTvTapsCounter.setText("0"); counter = 0; } } }); }
关键就在监听器里面的subscriber.onNext()方法,每次点击,通过这个方法通知subscriber,然后就是buffer操作符,将结果缓存3s,发射出来,可以看到onNext参数是一个列表(参考上面的示意图),这就是,通过判断列表的大小即可知道点击次数。
源代码
Demo地址:https://github.com/jiangkang/KTools.git
阅读全文
0 0
- RxJava实例-按钮点击数累加
- 实现点击按钮,数值累加的效果
- Android 点击按钮弹出提示框实例
- 数的累加!
- fgm实例练习笔记-3.3点击累加数字,自加1
- RXjava实现计时按钮
- 事件处理基础 处理按钮点击事件实例 Java核心技术
- Vue.js 点击按钮显示/隐藏内容 实例
- 安卓ExbandableListView含按钮点击事件的应用实例
- 浮点数累加的方法
- 【1027】正整数每位数累加
- 点击按钮
- shell编程实例--实现累加
- 黑马程序员之WinForm编程基础学习笔记:用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示从文本框1中的数字到文本框2中的数字之间的累加和。如果1或者2为错误的数据格式,则弹出对话框提示错
- rxJava实例分析
- RxJava实例(一)
- RxJava实例(二)
- RxJava实例(三)
- Java中的synchronized
- 机器学习-kNN实现简单的手写数字识别系统
- phpcms v9的表单向导实现问答咨询功能的方法
- Handler简单分析-runOnUiThread,view.post()
- Android分享---调用系统自带的分享功能
- RxJava实例-按钮点击数累加
- django1.11.1 models 数据库同步
- Myeclipse上svn回到上一个版本
- RxJava实例-用debounce实现的简单即时搜索
- ARM中的RO、RW和ZI DATA说明
- 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
- Storm内部的消息传递机制
- JSON解析框架汇总
- BGP的14条选路原则介绍