0

I want to display the count down timer when I click the button on the screen. Please send me code for displaying the timer if we click on the button.

Mat
  • 202,337
  • 40
  • 393
  • 406
Roster
  • 1,764
  • 6
  • 17
  • 36

1 Answers1

1

try this code -

import java.util.Timer;
import java.util.TimerTask;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;

public class stopwatch extends MainScreen  
{   

    private RichTextField _chronometer;
    Timer timer;
    private int second = 0, minute = 0, hour = 0;
    private boolean _sec = false, _min = false, _hou = false;
    ButtonField record,stop;

    public stopwatch()
    {

        record=new ButtonField("Start");
        stop=new ButtonField("Stop");

        _chronometer = new RichTextField("0" + hour + ":0" + minute + ":0" + second, RichTextField.TEXT_ALIGN_HCENTER | Field.NON_FOCUSABLE);
        add(_chronometer);

        HorizontalFieldManager hfm=new HorizontalFieldManager(FIELD_HCENTER);
        record.setMargin(net.rim.device.api.system.Display.getHeight()/2,0,0,0);
        stop.setMargin(net.rim.device.api.system.Display.getHeight()/2,0,0,20);
        hfm.add(record);

        hfm.add(stop);

        add(hfm);


        FieldChangeListener listener = new FieldChangeListener() {
            public void fieldChanged(Field field, int context) {

                if(field==record){
                     try 
                        {

                            try {
                                timer = new Timer();
                                resetChronometer();
                                timer.scheduleAtFixedRate(new Chronometer(), 1000, 1000);
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }  
                        catch (Exception e) 
                        {
                            Dialog.alert(e.toString());
                        }
                }
                if(field==stop){

                        try 
                        {

                                timer.cancel();

                        } 
                        catch (Exception e) 
                        {
                            Dialog.alert(e.toString());
                        }





                }

            }
        };
        record.setChangeListener(listener);
        stop.setChangeListener(listener);

    }

        private class Chronometer extends TimerTask {
            public void run() {
                try {
                    second++;
                    UiApplication.getUiApplication().invokeLater(new Runnable() {
                        public void run() {

                            if (_min == true) {
                                _min = false;
                                minute = minute + 1;
                                second = 0;
                            }

                            if (_hou == true) {
                                _hou = false;
                                hour = hour + 1;
                                minute = 0;
                            }

                            if (second == 59) {
                                _min = true;
                                if (minute == 59) {
                                    _hou = true;
                                }
                            }

                            if (second <= 9 && minute <= 9 && hour <= 9) {
                                _chronometer.setText("0" + hour + ":0" + minute + ":0" + second);
                            }

                            if (second > 9 && minute <= 9 && hour <= 9) {
                                _chronometer.setText("0" + hour + ":0" + minute + ":" + second);
                            }

                            if (second <= 9 && minute > 9 && hour <= 9) {
                                _chronometer.setText("0" + hour + ":" + minute + ":0" + second);
                            }

                            if (second <= 9 && minute <= 9 && hour > 9) {
                                _chronometer.setText("" + hour + ":0" + minute + ":0" + second);
                            }

                            if (second > 9 && minute > 9 && hour > 9) {
                                _chronometer.setText(hour + ":" + minute + ":" + second);
                            }

                            if (second > 9 && minute > 9 && hour <= 9) {
                                _chronometer.setText("0" + hour + ":" + minute + ":" + second);
                            }

                            if (second > 9 && minute <= 9 && hour > 9) {
                                _chronometer.setText("" + hour + ":0" + minute + ":" + second);
                            }

                            if (second <= 9 && minute > 9 && hour > 9) {
                                _chronometer.setText("0" + hour + ":" + minute + ":" + second);
                            }

                            // rt.setText(hour+":"+minute+":"+second);
                        }
                    });

                    // timer.cancel();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

        public void resetChronometer() {
          _chronometer.setText("00:00:00");
          second = 0;
          minute = 0;
          hour = 0;
}

}
Rince Thomas
  • 4,158
  • 5
  • 25
  • 44
  • thank you very much. but i am not able to disply any timer on the screen . i am getting the blanck screen. i have created above code in myscreen class. and below code in chronometer class.. i have created the button in my screen and added the try and catch as u have sent. but i am getting any screen. please help me and send the complete code – Roster May 01 '12 at 11:38
  • @sravani http://chat.stackoverflow.com/rooms/4014/knowledge-sharing-center-for-blackberry-android-and-java – Rince Thomas May 01 '12 at 11:41
  • you add _chronometer in your screen ? – Rince Thomas May 01 '12 at 11:43
  • ya i am able to display the text which i have added as _chronomter but there is no time. just simply it is displaying 00:00:00 – Roster May 01 '12 at 11:47