【问题标题】:How to disable view ( Button ) for specific time period (for example 5 seconds ) every time user click on button in android studio in kotlin?每次用户在kotlin的android studio中单击按钮时,如何在特定时间段(例如5秒)内禁用视图(按钮)?
【发布时间】:2021-09-13 10:00:12
【问题描述】:

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

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

祝你有个美好的一天!

【问题讨论】:

标签: android android-studio kotlin android-layout android-timer


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    应用启动主页活动(按钮启用)-> 主页活动按钮单击-> 打开游戏活动-> 当您从游戏活动返回时-> 主页活动按钮应禁用 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)
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-15
        相关资源
        最近更新 更多