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

线程也是可变的:

try {
 Thread.sleep(1000);
 } catch (Exception e) {
 }
于 2013-10-22T11:48:17.410 回答
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 = new 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 回答