2016-12-24 27 views
0

私のアプリでは、カウントダウンは5から1になります。現時点では、アクティビティが開始されるとすぐにカウンタが開始されます。私が望むのは、5秒間滞在して、画面がタッチされるまでカウントダウンするのを待つことです。そのため、タッチイベントのカウントダウンタイマーを開始する必要があります。android - on touchのアクティビティを開始する

public class MainActivity extends Activity implements OnGestureListener { 
    private static final String FORMAT = "%02d:%02d"; 

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

     new CountDownTimer(5000, 10) { 
      public void onTick(long millisUntilFinished) { 
       text.setText("" + String.format("%02d:%03d", 
         TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)), 
         TimeUnit.MILLISECONDS.toMillis(millisUntilFinished) - TimeUnit.SECONDS.toMillis(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)) 
       )); 

       if (animationRunning) { 
        cancel(); 
       } 
      } 

      public void onFinish() { 
       text.setText("done!"); 
      } 
     }.start(); 
    } 


    @Override 
    public boolean onTouchEvent(MotionEvent touchevent) { 

    } 
} 

答えて

1

場所のようにonTouch内部タイマーダウンあなたのカウント

public class MainActivity extends Activity implements OnGestureListener { 
    private static final String FORMAT = "%02d:%02d"; 

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


    } 


    @Override 
    public boolean onTouchEvent(MotionEvent touchevent) { 
     new CountDownTimer(5000, 10) { 
      public void onTick(long millisUntilFinished) { 
       text.setText("" + String.format("%02d:%03d", 
         TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)), 
         TimeUnit.MILLISECONDS.toMillis(millisUntilFinished) - TimeUnit.SECONDS.toMillis(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)) 
       )); 

       if (animationRunning) { 
        cancel(); 
       } 
      } 

      public void onFinish() { 
       text.setText("done!"); 
      } 
     }.start(); 
    } 
} 
+0

これは意味があります。カウントダウンがメソッドの一部であれば、私は何をするでしょうか? –

+0

あなたのメソッドをonTouchEvent内で呼び出したり、onTouchEventの新しいカウントダウンタイマーを作成したりしてください:) – Redman

+0

アプリが初めて起動されるまで画面に触れるまでアクティビティを「一時停止」する方法はありませんか? –

0

移動あなたのonTouchEventへのコードのこの部分、それは活動上だから、その開始は、あなたの活動が

new CountDownTimer(5000, 10) { 
    public void onTick(long millisUntilFinished) { 
     text.setText("" + String.format("%02d:%03d", 
       TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)), 
       TimeUnit.MILLISECONDS.toMillis(millisUntilFinished) - TimeUnit.SECONDS.toMillis(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)) 
     )); 

     if (animationRunning) { 
      cancel(); 
     } 
    } 

    public void onFinish() { 
     text.setText("done!"); 
    } 
}.start(); 
を開始したときに、なぜそれがある作成するには、以下の

あなたはすばらしいはずです。

関連する問題