1

私はAndroid Studioで作業しています。カウントダウンタイマーとボタンを持つアプリを作成しています。アプリケーションを実行すると、タイマーが自動的に実行され、ボタンをクリックしたい場合は、ボタンを押した回数をカウントする TextView があります。ボタンを押すとタイマーが開始し、カウントダウンが実行され続け、時間「0:000」で停止するため、クリックのカウントも停止します。手伝って頂けますか?(それがコードを置くのに役立つ場合)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txtCount = (TextView)findViewById(R.id.textView1);
    txtCount.setText(String.valueOf(count));
    btnCount = (Button)findViewById(R.id.button1);
    final TextView textViewTimer = (TextView)findViewById(R.id.textView2);
    btnCount.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
            count++;
            txtCount.setText(String.valueOf(count));
        }

    });
    new CountDownTimer(10000, 1) {
        public void onTick(long millisUntilFinished) {
            textViewTimer.setText("" + millisUntilFinished / 1000
                    + ":" + millisUntilFinished % 1000);
        }

        public void onFinish() {
            textViewTimer.setText("0:000");
        }
    }.start();


}

私はプライバシーのために他のものの残りのコードを書きませんが、これは興味深い部分です ;)

4

2 に答える 2

0

あなたの理解が正しければ、 の終了Button時に でのクリック数のカウントを停止してほしいとのことでした。CoundTownTimerこのためButtonに、タイマーが終了したときを無効にすることができます。

 public void onFinish() {
    textViewTimer.setText("0:000");
    btnCount.setEnabled(false);   // Add this line here
 }

何らかの理由でうまくいかない場合は、boolean変数を使用して、カウントに追加するかどうかを決定できます。

boolean addToCount = true;  // Create a variable

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txtCount = (TextView)findViewById(R.id.textView1);
    txtCount.setText(String.valueOf(count));
    btnCount = (Button)findViewById(R.id.button1);
    final TextView textViewTimer = (TextView)findViewById(R.id.textView2);
    btnCount.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
            count = (addToCount) ? count++ : count;  // Add 1 to count if 
                                                     // addToCount is true
            txtCount.setText(String.valueOf(count));
        }

    new CountDownTimer(10000, 1) {
    public void onTick(long millisUntilFinished) {
        textViewTimer.setText("" + millisUntilFinished / 1000
                + ":" + millisUntilFinished % 1000);
    }

    public void onFinish() {
        textViewTimer.setText("0:000");
        addToCount = false;     // Change variable so count doesn't increase
    }
   }.start();
于 2013-10-07T02:20:51.630 に答える