DataBinding中倒计时的实现

            <Button
                android:id="@+id/getCode"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentRight="true"
                android:layout_margin="@dimen/dimen_5dp"
                android:background="@drawable/login_bt_bg"
                android:enabled="@{Utils.isMobile(edPhone.text.toString()) && getCode.text.toString()==@string/getCode}"
                android:text="@string/getCode"
                android:textColor="@color/white" />
 codeButton.onClick {
            subscribe = Observable
                    .interval(0, 1, TimeUnit.SECONDS)
                    .map {
                        count--
                    }
                    .subscribeOn(Schedulers.io())
                    .doOnSubscribe {
                        codeButton.isEnabled = false
                    }
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe {
                        if (count == 0) {
                            count = 60
                            codeButton.isEnabled = true
                            codeButton.text = "获取验证码"
                            subscribe.unsubscribe()
                        } else codeButton.text = "${count}重新发送"
                    }
        }


猜你喜欢

转载自blog.csdn.net/qq_20330595/article/details/80539523
今日推荐