我正在用一个文本视图和一个开始/停止按钮在android中实现一个计时器。
如何在同一按钮的单击侦听器上注册不同的事件,以便当第一次单击它时,它将启动一个定时器,当第二次单击时,它将停止定时器并报告事件之间的时间?我正在用一个文本视图和一个开始/停止按钮在android中实现一个计时器。
如何在同一按钮的单击侦听器上注册不同的事件,以便当第一次单击它时,它将启动一个定时器,当第二次单击时,它将停止定时器并报告事件之间的时间?
Edit1
我所做的就是
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_depth);
findViewById(R.id.btn).setOnClickListener(this);
}
boolean showingFirst = true;
public void generate(View view){
if(showingFirst){
long startTime = System.currentTimeMillis();
showingFirst = false;
}else{
long difference = System.currentTimeMillis() - startTime;
showingFirst = true;
TextView myText = (TextView)findViewById(R.id.tv);
myText.setText(String.valueOf(difference));
}
}
但是,由于启动时间很长,如果当控件进入else循环时,它显示无法解析符号“starttime”
请帮助并特别感谢艾利阿米罗
发布于 2018-01-30 13:38:07
您可以使用全局布尔isStart
来完成它,并根据isStart
的值启动或停止计时器。
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isStart) {
// Stop timer
isStart = false;
} else {
// Start timer
isStart = true;
}
}
});
发布于 2018-01-30 13:13:37
尝尝这个,
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(btn.getText().toString().equals("Start")){
btn.setText("Stop");
// start timer
}else{
btn.setText("Start");
// stop timer
}
}
});
发布于 2018-01-30 13:34:02
在单击(开始/停止)按钮上,根据您的代码启动计时器并将一个值返回给按钮,当您再次单击该标志值时,可以使用该标志值为stop和start创建一个if条件。
https://stackoverflow.com/questions/48522252
复制相似问题