单击某个按钮时如何增加计时器?
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);
}
我想知道是否可以在计时器 运行 时增加秒数、小时数或分钟数。目前我已经在我的应用程序 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);
}