用于显示文本的睡眠定时器

时间:2014-05-20 02:45:43

标签: java android

在android中,我试图在覆盖下一个之前稍微延迟一次显示Ready Set Go。 这对我不起作用。我得到暂停但没有写文字。 这是我到目前为止所尝试的任何帮助表示赞赏!

用户点击Button点击后调用readySetGo

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    switch (v.getId()) {
    case R.id.button_start_pause:
        readySetGo();               
        break;

    default:
        break;
    }
}

public void readySetGo() {

    text_timer.setText("Ready");
    SystemClock.sleep(2000);
            text_timer.setText("Set");
            SystemClock.sleep(2000);
            text_timer.setText("Go!!");

}

2 个答案:

答案 0 :(得分:0)

除非这是在另一个线程中,否则在此方法返回

之前不会更新UI

请参阅http://developer.android.com/training/multiple-threads/communicate-ui.html

答案 1 :(得分:0)

我能够使用Kevin Krumwiede提供的帮助来获得以下答案......

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    switch (v.getId()) {
    case R.id.button_start_pause:
        ready();
        set();
        go();
        break;

    default:
        break;
    }

}

public void ready() {
    text_timer.setText("Ready");
}


public void set() {
    final Handler handler = new Handler();

    final Runnable r = new Runnable() {
        public void run() {
            text_timer.setText("   Set  ");

        }
    };
    handler.postDelayed(r, 1000);
}

public void go() {
    final Handler handler = new Handler();

    final Runnable r = new Runnable() {
        public void run() {
            text_timer.setText("  Go!!! ");

        }
    };
    handler.postDelayed(r, 2000);
}