每次用户在 kotlin 的 android studio 中单击按钮时,如何在特定时间段例如 5 秒内禁用视图按钮?

问题描述

用户点击按钮(按钮是家庭活动)时,他将在 30 秒到 1 分钟内进行游戏活动,用户可能赢或输,然后回到家庭活动,然后按钮必须禁用 3 分钟(随着时间的推移)倒计时显示)3 分钟后按钮再次启用并重复该过程。

请帮帮我,这是我大学项目的最后一部分。

祝你有个美好的一天!

解决方法

一个简单的解决方案是使用 countDownTimer。

val timer = object: CountDownTimer(20000,1000) {
    override fun onTick(millisUntilFinished: Long) {...}

    override fun onFinish() {...}
}
timer.start()

当用户来自游戏活动时,您将启动计时器。然后,您可以在调用 onPause 时保存剩余时间,并在调用 onResume 时重新开始倒计时。当剩余时间达到 0 时,您将再次启用该按钮。最后,您需要将剩余时间保存在 sharedpreference 中,以便在应用关闭时从剩余时间开始。

,

据我了解您的问题。如果我错了,请纠正我。

应用启动主页活动(按钮已启用)-> 主页活动按钮点击 -> 打开游戏活动 -> 当您从游戏活动中回来时 -> 主页活动按钮应禁用 3 分钟(按钮已禁用)。

所以您希望当您从游戏活动中回来时应禁用主页活动按钮,对吗?如果是

mHomeActiviyButton.enabled = false
val intent = Intent(this,GameActivity::class.java)
startActivityForResult(intent) // as startActivity for result is deprecated use new  one but logic remains same


In-game activity :
val intent = Intent()
intent.putExtra("DisableFor3Minutes",3) // you can customize time
setResult(intent)
enter code here

override onActivityResult function 
In home activity :     
val time = intent.getString("DisableFor3Minutes")

Handler(Looper.getMainLooper()).postDelayed({
mHomeActButton.enabled = true          
},time)
,

无需添加任何处理程序或时间 您必须禁用按钮 onClicks() 上的按钮并启用 onResume() 上的按钮 喜欢:

 mHomeActiviyButton.enabled = false
    val intent = Intent(this,GameActivity::class.java)
    startActivityForResult(intent) 
    
     override fun onResume() {
            mHomeActiviyButton.enabled = enable
        }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...