【发布时间】:2017-11-22 22:03:36
【问题描述】:
为什么当我将postDelayed(this,1000); 放在if 语句中,就在seconds++; 下方时,计时器停止工作?
布局中有 3 个按钮(开始、停止、重置)。按Start->running=true,按stop->running=stop,按reset->running=false seconds=0
private void runTimer() {
final TextView timeView = (TextView) findViewById(R.id.time_view);
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
int hours = seconds / 3600;
int minutes = (seconds % 3600) / 60;
int secs = seconds % 60;
String time = String.format("%d:%2d:%02d", hours, minutes, secs);
timeView.setText(time);
if (running) {
seconds++;
//handler.postDelayed(this, 1000);
//doesnt work if i put it here
}
handler.postDelayed(this, 1000);
}
});
}
【问题讨论】:
-
请在此处添加您的代码。
-
它不允许我这样做..有错误我不知道为什么
-
绝对可以在您的问题中添加代码。不要粘贴所有代码,只粘贴重现问题所需的部分。如果您在使用问题编辑器时遇到问题,SO 帮助页面中有指导。如果您还提到错误是什么,也许我们可以提供帮助。
-
另外我建议您在发送之前阅读帖子。可能您想改进格式,在逗号后添加大写字母,并在两个 ` 之间插入代码语句(它们称为反引号)
-
我的帖子有什么问题?为什么你们都想屏蔽我的帖子
标签: java android postdelayed