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

时间:2016-01-07 18:50:50

标签: android countdowntimer

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

我在适配器中有2个按钮:1:启动计时器2:我希望此按钮增加秒或分钟等等。非常感谢任何通过的帮助!

How to handle multiple countdown timers in ListView?

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;作为一个实例,但这也没有帮助。

1 个答案:

答案 0 :(得分:0)

你可以修补它以使它变得更好。 这就是我如何做到你认为有用的东西让我知道如果你有一个问题。

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);
}
相关问题