一定時間後に開始するアクティビティがあります。このアクティビティが開始されると、ユーザーは新しいタイマーを開始するボタンを押すことになっています。ボタンを押すまでのコードの実行
しかし、ユーザーがボタンを押さないと、ボタンが押されるまで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;
}
}
};
EDIT - 溶液の上には、それが偽=クリックされていない、偽==クリックするために必要な、機能していません!
返信いただきありがとうございます。私がこれを起こさせたい活動は、BreakActivityと呼ばれています。最初のコードスニペットを、このアクティビティのonCreateメソッドと、リスナの3番目のコードスニペットに入れますか? 2番目のコードスニペットでは、そのクラスを作成してBreakActivityを拡張する必要がありますか? – Rob
あなたのアクティビティにクラスmyCountを作成します.. ..何も拡張する必要はありません。 – 5hssba
これで、BreakActivityの最後にクラスmyCountを追加しました。しかし、クラスmyCountでは、変数counter、clickedおよびs1は定義されていません。 Startlistenerに追加したclicked = trueを変数に解決することができないため、どこかで間違っていました。( – Rob