2017-11-01 6 views
0

私はこの2日間はやってみようとしている問題を解決したいと思いますが、その多くの経験はありませんでした。 else。 とにかく、 私のアプリでは、タッチに反応するためにonClickClistenerを実装したボタンがあります。その中には、遅延を加え、その後いくつかのコードが実行されているハンドラが追加されています。私の問題は、遅延が起きている間にボタンのタップを検出したいと思っていて、postDelyed関数がそうすることができないということです。どうすればそれを実際に行うことができますか? それに関連するコードを投稿しました。 ありがとうございます!postDelayedハンドラによる遅延が発生している間にボタン上のタップを検出する方法

P.S(私はこのpostDelayedのものを使用していない心をいけない。)

Button button = findViewById(R.id.myButtonId); 

button.setOnClickListener(new View.OnClickListener){ 
@Override 
     public void onClick(View v) { 
      ....... 

      Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 

       @Override 
       public void run() { 

       //Do some thing after the delay 

       } 
      }, randomDelay); 

      //Do other things 
     } 
    }); 

答えて

0
boolean previousTapDetected; 
... 
button.setOnClickListener(new View.OnClickListener){ 
@Override 
     public void onClick(View v) { 
      ....... 
      if(previousTapDetected) { 
       //We got a tap during the delay 
      } 
      Handler handler = new Handler(); 
      previousTapDetected = true; 
      handler.postDelayed(new Runnable() { 

       @Override 
       public void run() { 
        previousTapDetected = false; 
       //Do some thing after the delay 

       } 
      }, randomDelay); 

      //Do other things 
     } 
    }); 
+0

は、あなたの答えをいただき、ありがとうございます。それは動作しますが、例えば、遅延中にタップを検出すると、すべてを止めることができますか?私はそれを把握できません。 –

+0

実際には私は間違いを犯して、コードの一部が何度も何度も繰り返されるようにしました –

関連する問題