Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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
如何让java等待x秒,然后执行_Java_Android_Xml - Fatal编程技术网

如何让java等待x秒,然后执行

如何让java等待x秒,然后执行,java,android,xml,Java,Android,Xml,我在制作一个应用程序时,会遇到一个无法修复的问题。 我正在使用Android Studio,我需要制作一个我已经制作好的按钮。做得比现在更多。我希望它在显示文本后也关闭应用程序。你知道我该怎么编程序吗。这将非常有帮助。提前谢谢 以下是Java代码: package test.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.V

我在制作一个应用程序时,会遇到一个无法修复的问题。 我正在使用Android Studio,我需要制作一个我已经制作好的按钮。做得比现在更多。我希望它在显示文本后也关闭应用程序。你知道我该怎么编程序吗。这将非常有帮助。提前谢谢

以下是Java代码:

package test.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

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

public void buttonOnClick(View v) {
    Button button=(Button) v;
    ((Button) v).setText("Correct");
}


public void buttonAnClick(View q) {
    Button button=(Button) q;
    ((Button) q).setText("Niet goed");
}
}

我已经用XML制作了这个按钮,并告诉它:

android:onClick=“buttonnclick”

希望你能帮助我

退房


如果您希望事后发生一些事情,那么您需要的是:

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                //What you want to happen later
            }
        }, 1500); //1500 = 1.5 seconds, time in milli before it happens.
把它放在按钮的方法中

如果您想关闭应用程序,请致电

      finish();

完成关闭当前活动。如果堆栈上有其他活动,您会返回到它们,但由于您可能只有1个,因此应该退出。

如果要暂停,请使用
java.util.concurrent.TimeUnit

例如:

TimeUnit.SECONDS.sleep(1);

如果您试图在按下按钮时延迟完成某项任务,请执行以下操作:

public void buttonOnClick(View v) {
    Button button=(Button) v;
    button.setText("Correct");
    button.postDelayed(new Runnable(){
       public void run() {
           //runs after 1 second delay on UI thread
       }
    }, 1000L);
}

只需将方法放入您的按钮单击功能中

public void buttonOnClick(View v) {
      //call method here
}
如果您想使用RxJava

Disposable di = Observable.timer(2, TimeUnit.SECONDS)
   .subscribe(timer->{
        //next action after 2 seconds
   },throwable->{
       // throw exception 
   });
要销毁一次性使用,
di.dispose()

如果使用Runnable和Handler

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    public void run() {
         //next action after 2 seconds
    }
}, 2*1000);
要停止处理程序,请使用,
handler.removeCallbacksAndMessages(null)

试试这个

public void buttonOnClick(View v) {
     Button button=(Button) v;
     ((Button) v).setText("Correct");
     new android.os.Handler().postDelayed(new Runnable() {
         @Override
         public void run() {
             finish();
         }
     },1000); // milliseconds: 1 seg.
}

你的头衔和身体不匹配。你的身体应该更清晰、更具描述性。此外,您不需要在onClick中执行所有操作来更改您已经有引用的视图的文本。
Thread.sleep(5000)将使程序暂停5秒。
public void buttonOnClick(View v) {
     Button button=(Button) v;
     ((Button) v).setText("Correct");
     new android.os.Handler().postDelayed(new Runnable() {
         @Override
         public void run() {
             finish();
         }
     },1000); // milliseconds: 1 seg.
}