title: Setting a countdown timer in Android Studio
body: <p>I'm trying to create a game that has a countdown timer in the top left hand corner.</p>
  
  <p>I have created a TextView box and called it 'time' and as far as I can see have set the timer correctly but it doesn't display anything.</p>
  
  <p>My code is below:</p>
  
  <pre><code>public class GameView extends SurfaceView implements SurfaceHolder.Callback {
  
  /* Member (state) fields   */
  private GameLoopThread gameLoopThread;
  private Paint paint; //Reference a paint object 
  /** The drawable to use as the background of the animation canvas */
  private Bitmap mBackgroundImage;
  // For creating the game Sprite
  private Sprite sprite;
  // For recording the number of hits
  private int hitCount;
  
  public GameView(Context context) {
      super(context);
      // Focus must be on GameView so that events can be handled.
      this.setFocusable(true);
      // For intercepting events on the surface.
      this.getHolder().addCallback(this);
      // Background image added
      mBackgroundImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.half_moon);
  
  }
   /* Called immediately after the surface created */
  public void surfaceCreated(SurfaceHolder holder) {
      // We can now safely setup the game start the game loop.
      ResetGame();//Set up a new game up - could be called by a 'play again option'
      mBackgroundImage = Bitmap.createScaledBitmap(mBackgroundImage, getWidth(), getHeight(), true);
      gameLoopThread = new GameLoopThread(this.getHolder(), this);
      gameLoopThread.running = true;
      gameLoopThread.start();
  }
  
  // For the countdown timer
  private long startTime; // Timer to count down from
  private final long interval = 1 * 1000; // 1 sec interval
  private CountDownTimer countDownTimer; // Reference to the class
  private boolean timerRunning = false;
  private String displayTime; // To display the time on the screen
  private TextView time = (TextView) findViewById(R.id.time);
  
  // Countdown Timer - private class
  private class MyCountDownTimer extends CountDownTimer {
  
      public MyCountDownTimer (long startTime, long interval) {
          super(startTime, interval);
      }
      public void onFinish() {
          displayTime = "Time is up!";
          timerRunning = false;
          countDownTimer.cancel();
      }
      public void onTick (long millisUntilFinished) {
          displayTime = " " + millisUntilFinished / 1000;
  
      }
  }
  
  //To initialise/reset game
  private void ResetGame(){
      /* Set paint details */
      paint = new Paint();
      paint.setColor(Color.WHITE); 
      paint.setTextSize(20);
      sprite = new Sprite(this);
      hitCount = 0;
      // Set timer
      startTime = 10; // Start at 10s to count down
      // Create new object - convert startTime to milliseconds
      countDownTimer = new MyCountDownTimer(startTime*1000, interval);
      countDownTimer.start(); // Start the time running
      timerRunning = true;
  
  
  }
  
  
  //This class updates and manages the assets prior to drawing - called from the Thread
  public void update(){
  
      sprite.update();
  
  }
  /**
   * To draw the game to the screen
   * This is called from Thread, so synchronisation can be done
   */
  public void doDraw(Canvas canvas) {
      //Draw all the objects on the canvas
      canvas.drawBitmap(mBackgroundImage, 0, 0, null);
      canvas.drawText("The Game ",15,25, paint);
      sprite.draw(canvas);
  }
  
  //To be used if we need to find where screen was touched
  public boolean onTouchEvent(MotionEvent event) {
          if (sprite.wasItTouched(event.getX(), event.getY())) {
              // This just renews the sprite for now
              sprite = new Sprite(this);
              hitCount++;
          }
      return true;
  }
  
  public void surfaceDestroyed(SurfaceHolder holder) {
      gameLoopThread.running = false;
  
      // Shut down the game loop thread cleanly.
      boolean retry = true;
      while(retry) {
          try {
              gameLoopThread.join();
              retry = false;
          } catch (InterruptedException e) {}
      }
  }
  
  public void getHitCount() {
  
  }
  
  public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
  
  }
  
  
  
  }
  </code></pre>
  
  <p>As always, any help greatly appreciated.</p>