title: how to get hour and minute from timepicker in android
body: <p>This is code I got for TimePicker.</p>
  
  <h2>TimePicker.java</h2>
  
  <pre><code>public class TimePicker extends EditText implements
      android.app.TimePickerDialog.OnTimeSetListener {
  public interface OnTimeSetListener {
      public void onTimeSet(TimePicker view, int hour, int minute);
  }
  
  protected int hour;
  protected int minute;
  protected OnTimeSetListener onTimeSetListener;
  protected java.text.DateFormat timeFormat;
  
  public int getHour() {
      return hour;
  }
  
  public OnTimeSetListener getOnTimeSetListener() {
      return onTimeSetListener;
  }
  
  public void setOnTimeSetListener(OnTimeSetListener onTimeSetListener) {
      this.onTimeSetListener = onTimeSetListener;
  }
  
  public void setHour(int hour) {
      this.hour = hour;
      updateText();
  }
  
  public int getMinute() {
      return minute;
  }
  
  public void setNow() {
      Calendar c = Calendar.getInstance();
      setTime(c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE));
  }
  
  public void setMinute(int minute) {
      this.minute = minute;
      updateText();
  }
  
  public void setTime(int hour, int minute) {
      this.hour = hour;
      this.minute = minute;
      updateText();
  }
  
  public TimePicker(Context context, AttributeSet attrs) {
      super(context, attrs);
  
      timeFormat = DateFormat.getTimeFormat(getContext());
  
      setInputType(InputType.TYPE_DATETIME_VARIATION_DATE);
      setFocusable(false);
      setNow();
  }
  
  protected void showTimePicker() {
      TimePickerDialog timePickerDialog;
  
      timePickerDialog = new TimePickerDialog(getContext(), this, getHour(),
              getMinute(), true);
      timePickerDialog.show();
  }
  
  @Override
  public boolean onTouchEvent(MotionEvent event) {
      if (event.getAction() == MotionEvent.ACTION_DOWN)
          showTimePicker();
  
      return super.onTouchEvent(event);
  }
  
  public java.text.DateFormat getTimeFormat() {
      return timeFormat;
  }
  
  public void setTimeFormat(java.text.DateFormat timeFormat) {
      this.timeFormat = timeFormat;
      updateText();
  }
  
  @Override
  public void onTimeSet(android.widget.TimePicker view, int hour, int minute) {
      // TODO Auto-generated method stub
      setTime(hour, minute);
      clearFocus();
  
      if (onTimeSetListener != null){
          onTimeSetListener.onTimeSet(this, hour, minute);
      }
  
  }
  
  public void updateText() {
      Calendar cal = new GregorianCalendar(0, 0, 0, getHour(), getMinute());
      setText(timeFormat.format(cal.getTime()));
  }
  </code></pre>
  
  <p>}</p>
  
  <h2>calendar_events.xml</h2>
  
  <pre><code>    &lt;?xml version="1.0" encoding="utf-8"?&gt;
      &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_gravity="center"
      android:background="@color/maroon"
      tools:context="com.gpplsmje.mac.calendar.CalendarEvents" &gt;
  
      &lt;com.gpplsmje.mac.calendar.utils.TimePicker
          android:id="@+id/alarm_time"
          style="@android:style/Widget.Holo.Light.Spinner"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="60"
          android:gravity="center"
          android:textColor="@color/white" /&gt;
      &lt;/RelativeLayout&gt;
  </code></pre>
  
  <h2>CalendarEvents.java</h2>
  
  <pre><code>public class CalendarEvents extends Activity implements OnClickListener {
      TimePicker notifyTime;
  
  Button back, cancel, done;
  int hour, minute, day, month, year;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.calendar_events);
      onNewIntent(getIntent());
  
      notifyTime = ((TimePicker) findViewById(R.id.alarm_time));
      notifyTime.setTimeFormat(DateFormat.getTimeFormat(this));
  
      hour = notifyTime.getHour();
      minute = notifyTime.getdMinute();
  
      done.setOnClickListener(this);
  }
  @Override
  public void onClick(View v) {
      switch (v.getId()){
      case R.id.bDone:
          Toast.makeText(this, year + " " + month + " " + day + " " + hour + " " + minute , Toast.LENGTH_LONG).show();
          break;
      }
  }
  </code></pre>
  
  <p>I made a <code>Toast</code> message to check if what I have selected from the <code>TimePicker</code> is the right thing. But every time I run this code it always gives me the current time on my machine and not the time I selected from the <code>TimePicker</code>. How do I accomplish this? Can any one please help me? Thanks in advance.</p>