一定時間後に開始するアクティビティがあります。このアクティビティが開始されると、ユーザーは新しいタイマーを開始するボタンを押すことになっています。
ただし、ユーザーがボタンを押さない場合、ボタンが押されるまで5分ごとにトーストを表示したい.
ボタンのリスナーがあります:
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;
}
}
};
編集 - 上記のソリューションは機能していません。clicked==false ではなく、clicked==false にする必要があります!!