2014-10-29 49 views
-3
final TextView tw = (TextView) findViewById(R.id.textView1); 
String mydate = java.text.DateFormat.getDateTimeInstance().format(
    Calendar.getInstance().getTime()); 
tw.setText(mydate); 

是我的Android應用程序代碼,文本顯示小時但小時停止,爲什麼?數字時鐘文本在Android中停止

+0

因爲,當你想要顯示時間時,你必須刷新它。該代碼只設置一次。您可以使用[TextClock](http://developer.android.com/reference/android/widget/TextClock.html),或在不定式線程中每x秒刷新一次您的代碼。 「 – vzoha 2014-10-29 08:05:38

+0

」文本顯示小時但小時停止「;這是什麼意思? – Rohit5k2 2014-10-29 08:05:46

+0

如何在不使用文本時鐘的情況下刷新它 – 2014-10-29 08:09:29

回答

1

因爲,當您要顯示時間時,您必須刷新它。該代碼只設置一次。您可以使用TextClock,或刷新你的代碼中不定式線程每x秒這樣的:

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) { 
      } 
     } 
    } 
} 
+0

我在哪寫這段代碼? – 2014-10-29 08:22:58

+0

在您的活動中,您將小時設置爲textView。 – vzoha 2014-10-29 08:24:46

+0

這段代碼出錯了http://i.imgur.com/2jDl4Sm.png – 2014-10-29 08:27:51

0

你應該把你的更新代碼的自動刷新塊像使用處理器

private void autoRfresh() { 
handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      //put your refresh code here 
     } 
    }, 500); 

}

+0

http://i.imgur.com/U2E93R4.png – 2014-10-29 10:20:50

+0

創建一個Handler對象然後做它.. – Akash 2014-10-29 12:25:13