Update TextView Every Second Update TextView Every Second android android

Update TextView Every Second


Add following code in your onCreate() method:

Thread thread = new Thread() {  @Override  public void run() {    try {      while (!thread.isInterrupted()) {        Thread.sleep(1000);        runOnUiThread(new Runnable() {          @Override          public void run() {            // update TextView here!          }        });      }    } catch (InterruptedException e) {    }  }};thread.start();

This code starts an thread which sleeps 1000 milliseconds every round.


It's a very old question and I'm sure there are a lot of resources out there. But it's never too much to spread the word to be at the safe side. Currently, if someone else ever want to achieve what the OP asked, you can use: android.widget.TextClock.

TextClock documentation here.

Here's what I've used:

<android.widget.TextClock    android:id="@+id/digitalClock"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:timeZone="GMT+0000" <!--Greenwich -->    android:format24Hour="dd MMM yyyy   k:mm:ss"    android:format12Hour="@null"    android:textStyle="bold"    android:layout_alignParentEnd="true" />


If you want to show time on textview then better use Chronometer or TextClock

Using Chronometer:This was added in API 1. It has lot of option to customize it.

Your xml

<Chronometer    android:id="@+id/chronometer"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:textSize="30sp" />

Your activity

Chronometer mChronometer=(Chronometer) findViewById(R.id.chronometer);mChronometer.setBase(SystemClock.elapsedRealtime());mChronometer.start();

Using TextClock: This widget is introduced in API level 17. I personally like Chronometer.

Your xml

<TextClock    android:id="@+id/textClock"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_marginTop="30dp"    android:format12Hour="hh:mm:ss a"    android:gravity="center_horizontal"    android:textColor="#d41709"    android:textSize="44sp"    android:textStyle="bold" />

Thats it, you are done.

You can use any of these two widgets. This will make your life easy.