Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何禁用/阻止onClickListener几秒钟?_Android_Android Layout - Fatal编程技术网

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

Android 如何禁用/阻止onClickListener几秒钟?,android,android-layout,Android,Android Layout,我制作了一个漂亮的闪屏,我想阻止onclicklistener几秒钟,因为我没有多少动画等,我想让用户看到这一切 我有: ostatni.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { starttap.start(); Intent i = new I

我制作了一个漂亮的闪屏,我想阻止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) {

            }
        });
编辑 我有:

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

            }
        });

但它不起作用。请帮帮我,谢谢

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

Thread.sleep(4000);//将线程冻结4秒钟


来源:

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

Thread.sleep(4000);//将线程冻结4秒钟

资料来源:

SystemClock.sleep(2000)
会更好

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

SystemClock.sleep(2000)
会更好


睡眠2ms,此方法将不会阻止线程。

您也可以使用android动画utils来执行此操作

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

     }
});
final Animation an=AnimationUtils.loadAnimation(getBaseContext(),R.anim.abc\u淡入);
.startAnimation(一家公司);
.setAnimationListener(新的Animation.AnimationListener(){
@凌驾
onAnimationStart上的公共无效(动画){
}
@凌驾
onAnimationEnd上的公共无效(动画){
//开始你的主要活动
}
@凌驾
onAnimationRepeat上的公共无效(动画){
}
});

您也可以使用android动画utils来完成此操作

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

     }
});
final Animation an=AnimationUtils.loadAnimation(getBaseContext(),R.anim.abc\u淡入);
.startAnimation(一家公司);
.setAnimationListener(新的Animation.AnimationListener(){
@凌驾
onAnimationStart上的公共无效(动画){
}
@凌驾
onAnimationEnd上的公共无效(动画){
//开始你的主要活动
}
@凌驾
onAnimationRepeat上的公共无效(动画){
}
});
是否添加此项

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

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

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

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

当动画完成时,您应该在
onClick
方法中设置onclicklistener,您可以执行
ostatni.setOnClickListener(null)
,然后在动画完成时再次设置它。当动画完成时,您应该在
onClick
方法中设置onclicklistener,您可以执行
ostatni.setOnClickListener(null)
,然后在动画完成后再次设置。@dawidurusek将您的setEnabled(false)放在onClickListener之外,否则在未单击button@dawidurusek将setEnabled(false)放在onClickListener外部,否则在未单击按钮时无法禁用它