0

ボタンのテキストを変更する前に、アプリを少し待ちたいと思います。さまざまなこと (wait()、Thread.sleep) を試しましたが、待機時間を可変にしたいので、CountDownTimer を使用することにしました。以下のコードを参照してください。

  public void onClick(View buttonClicked) {
    if (i == 0) {
        button.setText("Wait");
        waitingTime = (long) (Math.random() * 1000 + 10000);
        new countdown(waitingTime, 1000);
        time1 = System.currentTimeMillis();
        button.setText("Press");
        i++;

何らかの理由でこれは機能せず、プログラムはまったく待機しません。誰でも私を助けてもらえますか?CountDownTimer には何も入力しませんでした。これは、数秒間だけ待機する必要があると判断したためです。

4

2 に答える 2

0

このコードを試してください

@Override
public void onClick(View view) {
if(i==0) {
        YourActivity.this.runOnUiThread(new Runnable() {



@Override               

public void run() {
txtView.setText("please wait...");
}
});

while(counter < 1000) {
try {
    Thread.sleep(100);
}catch(InterruptedException e) {
    e.printStackTrace();
}
counter +=100;
}

txtView.setText("press");


i++;


}

}

必要に応じてスレッドのタイミングを増やしてください。必要に応じて、スリープ値を渡す関数にこのコードを記述します

編集

mHandler = 新しい Handler(); btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {
            btn.setText("wait");
            mHandler.postDelayed(new Runnable() {

                @Override
                public void run() {
                    btn.setText("press");
                }
            }, 1500);
        }
    });
于 2013-10-22T12:23:02.523 に答える