倒数计时器达到0时开始新的活动

时间:2019-11-20 18:53:15

标签: java android android-studio android-intent

我正在制作一个简单的倒计时计时器应用程序,但无法启动新的活动。在onFinish()方法上,我调用了另一个方法resetActivity(),它创建了一个新的Intent,如下所示:

public void resetActivity() {
    Intent intent = new Intent(MainActivity.this, reset.class);
    startActivity(intent);
}

当我的计时器达到0而不是开始新活动时,它便崩溃了。

我觉得这与View有关,但是我在网上找不到任何对我的情况有所帮助的内容。我碰到的大多数页面都使用一个按钮来启动新活动 我进行这项新活动的原因仅仅是将新消息和重置按钮重新设置为新背景。如果有一种方法可以在计时器达到0时更改背景,那么我就不需要第二次活动。

这是我的countdownTimer块:

public void start() {
    countdowntimer = new CountDownTimer(timeLeft, 1000) {
        @Override
        public void onTick(long x) {
            timeLeft = x;
            updateTimer();
        }

        @Override
        public void onFinish() {
            resetActivity();
        }
    }.start();
}

1 个答案:

答案 0 :(得分:0)

更改托管活动背景的一种方法是将ImageView添加到您的活动布局:

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"/>

有了这样的设置,您可以在计时器的onFinish中执行imageView.setImageResource(R.drawable.myAwesomeDrawable)(并以这样的方式调用计时器,例如new CountDownTimer(5000, 1000))。我不确定您在onTick中的逻辑。

除了将图像设置为ImageView之外,您当然可以像您提到的那样过渡到新活动。假设活动已按照您所说的在清单中注册,那么它将起作用。

如果上述方法无效,则需要您的logcat。