user3057617
user3057617

Reputation: 1

TextView Timer trouble

i'm new to the world of writing code, and I need help with TextView. I want the displayed android time to countdown on the screen eg from 10 to 1. At the minute it's displaying the first number, but it doesn't change. Any help would be greatly appeciated.

private final Handler mHandler = new Handler();
private TextView mTest;
private long startTime = 10 * 1000;

private Runnable mTask = new Runnable()
{
  public void run()
  {
     mTest.setText("Sorry. Times up!");

  }//run

};//mTask

/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState)
{
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  mTest = (TextView) findViewById(R.id.timer);
  mTest.setText(mTest.getText() + String.valueOf(startTime / 1000));
  mHandler.postDelayed(mTask, 10000);

}//onCreate

@Override
protected void onDestroy() {
  super.onDestroy();
  mHandler.removeCallbacks(mTask);

}//onDestroy

Upvotes: 0

Views: 58

Answers (1)

Mike M.
Mike M.

Reputation: 39191

Try this:

TextView mTest;
private final Handler mHandler = new Handler();
private int startTime = 10;
private Runnable mTask = new Runnable()
{
    public void run()
    {
        if(startTime > 0)
        {
            mTest.setText(String.valueOf(startTime));
            startTime--;
            mHandler.postDelayed(mTask, 1000);
        }
        else
        {
            mTest.setText("Sorry. Times up!");              
        }
    }
};

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mTest = (TextView) findViewById(R.id.timer);
    mHandler.post(mTask);
}

Upvotes: 1

Related Questions