0

当用户点击按钮(按钮是家庭活动)时,他将打算在 30 秒到 1 分钟内进行游戏活动,用户可能输赢并返回家庭活动,然后按钮必须禁用 3 分钟(显示时间倒计时) 3 分钟后按钮再次启用并重复处理。

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

祝你有美好的一天!

4

3 回答 3

0

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

 mHomeActiviyButton.enabled = false
    val intent = Intent(this, GameActivity::class.java)
    startActivityForResult(intent) 
    
     override fun onResume() {
            mHomeActiviyButton.enabled = enable
        }
于 2021-08-09T10:35:18.310 回答
0

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

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

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

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

于 2021-07-01T10:28:25.337 回答
0

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

该应用程序启动主页活动(启用按钮)-> 主页活动的按钮单击-> 打开游戏活动-> 当您从游戏活动返回时-> 主页活动按钮应禁用 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)
于 2021-07-01T19:26:19.867 回答