我有一项活动在一定时间后开始。一旦这个活动开始,用户应该按下一个按钮来启动一个新的计时器。
但是,如果用户没有按下按钮,我希望每 5 分钟显示一次 toast,直到按下按钮。
我有一个按钮监听器:
startBreakButton = (Button) findViewById(R.id.startBreakButton);
startBreakButton.setOnClickListener(mStartListener);
我有显示吐司的代码,其他一切都运行良好。
我只是不确定在单击按钮之前将要运行的代码放在哪里。在 mStartListener 代码中还是在其他地方,例如在 onCreate 方法中?
更新
public class BreakActivity extends Activity {
Button startBreakButton; // button to start the break timer
Boolean clicked= false;
CountDownTimer counter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.breakscreen); // sets layout to breakscreen.xml
MyCount counter;
counter=new MyCount(5000,1000);
counter.start();
startBreakButton = (Button) findViewById(R.id.startBreakButton);
startBreakButton.setOnClickListener(mStartListener);
View.OnClickListener mStartListener = new OnClickListener() {
clicked=true;
//other listener code
};
public class MyCount extends CountDownTimer{
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
if(clicked==false){
Toast.makeText(getApplicationContext(), "TAKE A BREAK", Toast.LENGTH_LONG).show();
counter= new MyCount(5000,1000);
counter.start();
}
}
@Override
public void onTick(long millisUntilFinished) {
long s1 = millisUntilFinished;
}
}
};
编辑 - 上面的解决方案不起作用,它需要被点击==false,而不是点击=false!!