如何禁用/阻止onClickListener几秒钟?

时间:2017-01-17 00:26:03

标签: android android-layout

我制作了漂亮的闪屏,我想阻止onclicklistener几秒钟,因为我没有动画等等,我希望用户看到它。

我有:

 ostatni.setOnClickListener(new View.OnClickListener() {

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

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

                startActivity(i);
            }
        });

修改

我有:

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) {

            }
        });

它不起作用。请帮助我,谢谢!

4 个答案:

答案 0 :(得分:1)

您可以暂停正在运行的线程,主线程(UI线程):

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

来源:Java, Pausing Execution

答案 1 :(得分:1)

SystemClock.sleep(2000)会更好。

睡眠2ms,此方法不会阻塞该线程。

答案 2 :(得分:0)

你也可以使用android动画工具来做到这一点

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) {

     }
});

答案 3 :(得分:0)

添加这个?

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

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