Android中停止的数字时钟文本

Android中停止的数字时钟文本,android,eclipse,time,Android,Eclipse,Time,是我的Android应用程序代码,文本显示小时,但小时停止,为什么?因为,当你想显示时间时,你必须刷新它。此代码仅设置一次。您可以在无限线程中每x秒使用或刷新代码,如下所示: final TextView tw = (TextView) findViewById(R.id.textView1); String mydate = java.text.DateFormat.getDateTimeInstance().format( Calendar.getInstance().getTi

是我的Android应用程序代码,文本显示小时,但小时停止,为什么?

因为,当你想显示时间时,你必须刷新它。此代码仅设置一次。您可以在无限线程中每x秒使用或刷新代码,如下所示:

final TextView tw = (TextView) findViewById(R.id.textView1);  
String mydate = java.text.DateFormat.getDateTimeInstance().format(
    Calendar.getInstance().getTime());
tw.setText(mydate);

您应该像使用Handler一样将刷新代码放入自动刷新块中

private Thread dateTimeThread;
private TextView tw;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    tw = (TextView) findViewById(R.id.textView1);
}

@Override
public void onPause() {
    super.onPause();
    if (dateTimeThread != null) {
        dateTimeThread.interrupt();
        dateTimeThread = null;
    }
}

@Override
public void onResume() {
    super.onResume();
    DateTimeRunner timeRunnable = new DateTimeRunner();
    dateTimeThread = new Thread(timeRunnable);
    dateTimeThread.start();
}

private void tickTime() {
    runOnUiThread(new Runnable() {
        public void run() {
            String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
            tw.setText(mydate);
        }
    });
}

protected class DateTimeRunner implements Runnable {
    // @Override
    public void run() {
        while (!Thread.currentThread().isInterrupted()) {
            try {
                tickTime();
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            } catch (Exception e) {
            }
        }
    }
}

}

因为,当你想显示时间时,你必须刷新它。此代码仅设置一次。您可以在无限线程中每x秒使用或刷新一次代码。“文本显示小时,但小时停止”;你这是什么意思?如何在不使用TextClock的情况下刷新它启动应用程序时有时间且为真,但停止了小时。我在哪里编写此代码?在你的活动中,你正在将小时设置为textView。此代码出错,我编辑了答案,但此代码是正确的。创建处理程序对象,然后执行此操作。。
 private void autoRfresh() {
handler.postDelayed(new Runnable() {
         @Override
         public void run() {
            //put your refresh code here
         }
     }, 500);