单击某个按钮时如何增加计时器?

How to Increment a timer when a certain button is clicked?

我想知道是否可以在计时器 运行 时增加秒数、小时数或分钟数。目前我已经在我的应用程序 feedAdapter 中实现了这个答案。我也在 CountDownTimer 中使用了这种增量函数,它真的很有效!但只有当你暂停它然后再次恢复它时。(让我们先不谈它)。所有处理程序和功能都在此链接的答案中!

我在适配器中有 2 个按钮:1:启动计时器 2:我希望此按钮增加秒数或分钟数等。如有任何帮助,我将不胜感激!

public void incrementExpirationTime () {

       int defaultIncrementValue = 10000; //lets say ten seconds (this can also be a long data)
       long productExpiryTime = getProductExpiryTime();
       productExpiryTime+=defaultIncrementValue;
}

我也将此 private long productExpiryTime; 设为实例,但这也无济于事。

您可以修改它以使其变得更好。 我就是这样做的,如果您有任何问题,请告诉我。

private final int INCREMENT = 10;
private final int ONE_SECOND = 1;
private boolean running = false;
private int time = 100;

public void initialize() {
    final Button start = findViewById(R.id.start);
    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            running = !running;
            if (running)
                updateButton(start);
        }
    });

    final Button increment = findViewById(R.id.increment);
    increment.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (running)
                time += INCREMENT;
        }
    });
}

private void updateButton(final Button start) {
    start.postDelayed(new Runnable() {
        @Override
        public void run() {
            time--;
            start.setText(String.valueOf(time));
            if (time == 0) {
                Toast.makeText(getApplicationContext(), "time is up!", Toast.LENGTH_SHORT).show();
                running = false;
            } else {
                if (running) {
                    updateButton(start);
                }
            }
        }
    }, ONE_SECOND);
}