Android中停止的数字时钟文本
是我的Android应用程序代码,文本显示小时,但小时停止,为什么?因为,当你想显示时间时,你必须刷新它。此代码仅设置一次。您可以在无限线程中每x秒使用或刷新代码,如下所示: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
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);