2017-01-17 5 views
0

私はすてきなスプラッシュスクリーンを作りました。私は数秒間onclicklistenerをブロックしたいのですが、私はいくつかのアニメーションを持っています。私が持っている数秒間onClickListenerを無効/ブロックする方法はありますか?

ostatni.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       starttap.start(); 
       ostatni.setEnabled(false); 


      } 
     }); 

     wlot.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 

       Intent i = new Intent(Start.this,ActivityMainWallet.class); 

       startActivity(i); 
       ostatni.setEnabled(true); 

      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 
     }); 
をそして、それは動作しません:

ostatni.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       starttap.start(); 

       Intent i = new Intent(Start.this,ActivityMainWallet.class); 

       startActivity(i); 
      } 
     }); 

EDIT

を私は持っています。ありがとう!

+3

アニメーションはあなたが 'ostatni.setOnClickListener(null)を'行い、その後、再び時にアニメーションが終了し、それを設定することができ 'onClick'方法で – WenChao

+0

を終了するときにonclicklistenerを設定する必要があります。 –

答えて

1

あなたは、それは、メインスレッド(UIスレッド)を実行しているスレッドを一時停止することができます

Thread.sleep(4000); // freeze the thread for 4 seconds

出典:Java, Pausing Execution

1

SystemClock.sleep(2000)が良くなります。

スリープ2msこのメソッドはスレッドをブロックしません。また、これは

final Animation an = AnimationUtils.loadAnimation(getBaseContext(), R.anim.abc_fade_in); 

<your imageviews or any other view>.startAnimation(an); 
    an.setAnimationListener(new Animation.AnimationListener() { 
    @Override 
    public void onAnimationStart(Animation animation) { 

    } 

    @Override 
    public void onAnimationEnd(Animation animation) { 
       //start your main activity 
    } 

    @Override 
    public void onAnimationRepeat(Animation animation) { 

    } 
}); 
0

public onCreate(....) 
{ 
    ...... 
    ...... 
    ostatni.setOnClickListener(........); 
    ostatni.setEnabled(false); 
} 

@Override 
public void onAnimationEnd(Animation animation) { 
      ostatni.setEnabled(true); 
} 
+0

@maxeplodeメインの投稿で私の編集を確認してください – dawidurusek

0

これを追加行うにはアンドロイドアニメーションutilsのを使用することができます

+0

メインの投稿を確認してください – dawidurusek

+0

@dawidurusekあなたのsetEnabled(false)をonClickListenerの外に置いてください。そうでなければ、ボタンをクリックしていないときに無効にすることはできません –

関連する問題