2

Here is the link where i have discussed about a countdown timer of format(mm:ss) in Java:

Java console code for StopWatch/Timer?

Now i want to display (and update) it in a textview in android. Any clue?

4 Answers 4

12

To count down

You'll use a TextField and update its content using CountDownTimer, or check Rahul's answer in this same question.

To count up

In your Activity

import android.widget.Chronometer;

...

private Chronometer crono;

protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 setContentView(R.layout.screen_crono);    

 this.crono = (Chronometer) findViewById(R.id.calling_crono);

    startCrono();
}

public void startCrono() {
 crono.setBase(SystemClock.elapsedRealtime());
 crono.start();
}

To stop it

crono.stop();

In the XML Layout screen_crono

<Chronometer
    android:id="@+id/calling_crono"
 android:layout_height="wrap_content" 
 android:layout_width="wrap_content" 
    android:textStyle="bold"
 android:textSize="14sp"/>

To set it inside a TextView, I don't think that's possible. Place it to its right or to its left, depending on what you want.

If this is not what you wanted, I hope it helps someone else.

Sign up to request clarification or add additional context in comments.

1 Comment

yes, this'll count up, my mistake, but it looks like Maxood didn't mind :) I've updated the answer.
7

You can also use the CountDownTimer class available in android.

Just declare a constructor and start the timer with

timer test=new timer(30000,1000);

onTick will get fired once in every 1000ms in the above case. You can update your TextView from here

class timer extends CountDownTimer
{

 public timer(long millisInFuture, long countDownInterval) 
    {
  super(millisInFuture, countDownInterval);
  // TODO Auto-generated constructor stub
 }

 @Override
 public void onFinish() 
    {


 }

 @Override
 public void onTick(long millisUntilFinished) 
    {
  // TODO Auto-generated method stub
            // Update your textview on on tick

 }

 }

Comments

2

Use the method of a timed UI update in this article it really works great

http://developer.android.com/resources/articles/timed-ui-updates.html

Also, you might use the built in android time class to display your text, it will make your formatting much easier imo

http://developer.android.com/reference/android/text/format/Time.html

Comments

0

try this code.....

tv = new TextView(this);
    this.setContentView(tv);

//10000 is the starting number (in milliseconds)
//1000 is the number to count down each time (in milliseconds)
MyCount counter = new MyCount(10000,1000);

counter.start();

}

//countdowntimer is an abstract class, so extend it and fill in methods
public class MyCount extends CountDownTimer
{

public MyCount(long millisInFuture, long countDownInterval) 
{
super(millisInFuture, countDownInterval);
}

public void onFinish()
{
tv.setText("Time Up!");
}

public void onTick(long millisUntilFinished) 
{
tv.setText("Time Left : " + millisUntilFinished/1000);

}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.