Loops 如何在循环中设置倒计时?
因此,我目前正在开发一个应用程序,它将执行一项任务,该任务将根据用户在文件中提供的输入进行设计。从输入中,应用程序将获得字符串的ArrayList,其中的大小将用于确定循环的重复次数 任务是在特定的持续时间内隐藏一个ImageView和两个按钮,然后使其再次可见(使用倒计时)。当按钮可见时,当它们单击其中一个按钮并根据单击的按钮存储一个值时,会从用户处获得响应。经过一定时间后,ImageView和按钮将再次不可见 循环将执行执行任务的功能。我现在没有循环的代码如下:Loops 如何在循环中设置倒计时?,loops,kotlin,countdowntimer,Loops,Kotlin,Countdowntimer,因此,我目前正在开发一个应用程序,它将执行一项任务,该任务将根据用户在文件中提供的输入进行设计。从输入中,应用程序将获得字符串的ArrayList,其中的大小将用于确定循环的重复次数 任务是在特定的持续时间内隐藏一个ImageView和两个按钮,然后使其再次可见(使用倒计时)。当按钮可见时,当它们单击其中一个按钮并根据单击的按钮存储一个值时,会从用户处获得响应。经过一定时间后,ImageView和按钮将再次不可见 循环将执行执行任务的功能。我现在没有循环的代码如下: val timer3
val timer3 = object : CountDownTimer(5000, 1000) {
override fun onFinish() {
visible() //ImageView and buttons to be visible
btnX.setOnClickListener {
val intentResultActivity = Intent(this@TaskActivity, ResultActivity::class.java)
startActivity(intentResultActivity) //Go to the next activity
}
btnO.setOnClickListener {
val intentResultActivity = Intent(this@TaskActivity, ResultActivity::class.java)
startActivity(intentResultActivity) //Go to the next activity
}
}
override fun onTick(p2: Long) {
invisible() //ImageView and buttons to be invisible
imageView.setImageURI(Uri.parse(SettingsActivity.pic3)) //Set the image
}
}
val timer2 = object : CountDownTimer(5000, 1000) {
override fun onFinish() {
visible() //ImageView and buttons to be visible
btnX.setOnClickListener {
timer3.start() //Start the next timer
}
btnO.setOnClickListener {
timer3.start() //Start the next timer
}
}
override fun onTick(p1: Long) {
invisible() //ImageView and buttons to be invisible
imageView.setImageURI(Uri.parse(SettingsActivity.pic2)) //Set the image
}
}
val timer = object: CountDownTimer(5000,1000){
override fun onFinish() {
visible() //ImageView and buttons to be visible
btnX.setOnClickListener {
timer2.start() //Start the next timer
}
btnO.setOnClickListener {
timer2.start() //Start the next timer
}
}
override fun onTick(p0: Long) {
invisible() //ImageView and buttons to be invisible
imageView.setImageURI(Uri.parse(SettingsActivity.pic1)) //Set the image
}
}
我在下面所做的循环代码将执行最后一个倒计时并跳过其余部分
for (i in 0 until SettingsActivity.picArray.size) {
if (i<(SettingsActivity.picArray.size-1)) {
timerLoopBlank(i)
}
}
我认为由于onTick参数的缘故,前面的倒计时被跳过了。如何执行循环并且不跳过前面的倒计时?有人能帮我吗?您正在创建多个
倒计时对象。只需在类主体和onFinish()
dotimer.start()
中创建它的对象,您能告诉我如何做吗?对不起,我对这件事真的很陌生。
private fun timerLoopBlank (i:Int) {
val timerBlank = object: CountDownTimer(5000,1000){
override fun onFinish() {
visible()
timerLoopAnswer()
}
override fun onTick(p0: Long) {
invisible()
imageView.setImageURI(Uri.parse(SettingsActivity.picArray[i]))
}
}
timerBlank.start()
}
fun timerLoopAnswer () {
val timerAnswer = object: CountDownTimer(5000,1000){
override fun onFinish() {
}
override fun onTick(p1: Long) {
btnX.setOnClickListener {
answerArray.add('X')
}
btnO.setOnClickListener {
answerArray.add('O')
}
}
}
timerAnswer.start()
}
fun invisible(){
imageView.visibility = View.INVISIBLE
btnX.visibility = View.INVISIBLE
btnO.visibility = View.INVISIBLE
}
fun visible(){
imageView.visibility = View.VISIBLE
btnX.visibility = View.VISIBLE
btnO.visibility = View.VISIBLE
}