我有一段時間後纔開始的活動。一旦這個活動開始,用戶應該按下一個按鈕來啓動一個新的計時器。運行代碼,直到按下按鈕
但是,如果用戶沒有按下按鈕,我希望每5分鐘顯示一次烤麪包,直到按下按鈕。
我有一個按鈕監聽器:
startBreakButton = (Button) findViewById(R.id.startBreakButton);
startBreakButton.setOnClickListener(mStartListener);
我有顯示吐司和一切運作良好的代碼。
我只是不確定在點擊按鈕之前將代碼放到哪裏。在mStartListener代碼或其他地方,如在onCreate方法?
UPDATE
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;
}
}
};
編輯 - 上述方案不能正常工作,它需要被點擊==假的,不是點擊=假的!
感謝您的回覆。我希望發生的活動稱爲BreakActivity。是否將第一個代碼片段與此活動的onCreate方法以及偵聽器中的第三個代碼片段一起放置?對於第二個代碼片段,我需要創建該類並擴展BreakActivity? – Rob 2012-04-10 11:47:20
在你的活動中創建類myCount .. ..不需要擴展..什麼.. – 5hssba 2012-04-10 11:52:47
好吧,我在BreakActivity的末尾添加了類myCount。然而,在類myCount是說變量計數器,點擊和s1未定義。我添加到Startlistener的clicked = true不能解析爲變量,所以它出錯了某個地方:( – Rob 2012-04-10 12:03:04