在Android中使用Kotlin实现发送验证码60秒倒计时

       在Android中使用Kotlin实现发送验证码60秒倒计时

==============================

首先添加一个Kotlin支持findViewById的插件 apply plugin: 'kotlin-android-extensions’

如何使用呢?
有了这个插件直接导入包 import kotlinx.android.synthetic.main.layout_activity_code.* ,layout_activity_code是当前的布局文件,这样就方便使用了,比如我有一个Text View的空间id名称为tv,我要给这个TextView设置文本,就直接 tv.text = “使用Kotlin开发Android” 就是这么简单,接下来正题,通过实现Handler接口实现验证码60秒倒计时,代码来了

import kotlinx.android.synthetic.main.layout_activity_code.*
class UpdatePhoneActivity : BaseActivity() , View.OnClickListener{

private var mCurrentNum = 60
private val TIME: Long = 1000

override fun contentView() {
setContentView(R.layout.layout_activity_code)
send_verify_code_layout.setOnClickListener(this)

}

override fun onClick(v: View?) {
when (v?.id) {
R.id.send_verify_code_layout -> {
edit_verifycode.postDelayed(this, TIME);
}
}
}

//这里通过object关键字声明Runnable接口
private val mRefreshRunnable: Runnable = object : Runnable {
override fun run() {
sendverifycode.text = mCurrentNum.toString() + “s”
progressbar.visibility = View.GONE

        if (mCurrentNum == 0) {
            edit_verifycode.removeCallbacks(this)
            send_verify_code_layout.isEnabled = true
            sendverifycode.text = "重发验证码"
        } else {
            mCurrentNum -= 1
            edit_verifycode.postDelayed(this, TIME);
        }
        sendverifycode.visibility = View.VISIBLE
    }
}

}

你可能感兴趣的:(Android_Kotlin)