【问题标题】:Button Set-timeout(delay of one second)按钮设置超时(延迟一秒)
【发布时间】:2019-02-28 16:31:21
【问题描述】:

我在 Android Studio 中创建的一个非常简单的程序需要帮助。有两个不同的背景图像。我想要的只是按下一个按钮,让我的背景图像更改为下一个图像,延迟 1 秒,然后变回原始图像。

我可以在印刷机上更改背景图片,但我不知道如何添加延迟并改回背景图片。

编辑:谢谢你们帮助我。我对这些东西很陌生,我花了很多时间试图自己弄清楚。终于搞定了!

【问题讨论】:

    标签: android image button delay


    【解决方案1】:

    在这种情况下,您需要Handler..

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
        //Change the image back here
      }
    }, 1000); // 1 sec delay
    

    【讨论】:

    • 是的,我之前尝试过,但是当我将代码更改回图像时,我收到一条错误消息,提示我的变量需要声明为 final。
    • @Justin 如果您坚持给出错误的行,它会建议将该变量设为 final,因为您在 run 方法中使用它。所以,无论你想在run() 方法中使用什么,都将其设为final(在声明它之前添加final),然后它就会起作用。
    • @Justin 将您的变量声明为类级别...或将其设为最终变量...它将被解决。
    【解决方案2】:

    这可能会对你有所帮助。

    // set the background here
    compositeDisposable.add(
                Completable.timer(1, TimeUnit.SECONDS)
                        .subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(() -> {
                           //update the background
                        }, Throwable::printStackTrace));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 2019-02-26
      • 2023-03-23
      • 1970-01-01
      • 2013-11-20
      相关资源
      最近更新 更多