Button onClick 是否在单击事件中创建和销毁视图?

Does a Button onClick create and destroy the view within the event of clicking?

我有一个应该模拟计时器的 Android 应用程序,问题是当我点击应该启动计时器的按钮时,CountDownTimer 立即触发 onFinish 方法,导致日志条目说计时器已经结束并在 phone 上显示祝酒词。 Dows 按钮 onClick 在点击事件中调用创建和销毁视图?

这是按钮调用的方法:

public void onClick(View v){
    numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        timerValue = newVal*1000;
    }
        });

        new CountDownTimer(timerValue, 1000){
            @Override
            public void onTick(long millisUntilFinished) {

                Log.i("robeh accadono", String.valueOf(millisUntilFinished/1000));

            }

            @Override
            public void onFinish() {
                Toast.makeText(MainActivity.this, "Il timer è arrivato alla fine", Toast.LENGTH_SHORT).show();
                Log.i("Fatto!", "finito");

            }
        }.start();
    }

似乎按下按钮时 timerValue 变量根本没有赋值

从您的点击事件中删除这段代码,并在按钮点击代码片段之前使用它

numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        timerValue = newVal*1000;
    }
});

嗨,尼古拉,只需将您的代码更改为:

public void onClick(View v){ int timerValue = numberPicker.getValue() * 1000;

    new CountDownTimer(timerValue, 1000){
        @Override
        public void onTick(long millisUntilFinished) {

            Log.e("robeh accadono", String.valueOf(millisUntilFinished/1000));

        }

        @Override
        public void onFinish() {
            Toast.makeText(Test.this, "Il timer è arrivato alla fine", Toast.LENGTH_SHORT).show();
            Log.e("Fatto!", "finito");

        }
    }.start();
}

希望对您有所帮助!!!