In my app, I am showing time in text view as 07:00 PM. On click of the text view, a time picker dialog pops up, In that time picker, I have to show exactly the same time as what is appearing in textview. But, I am not getting how to do that.
CODE
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a");
//int hr = 0;
Date date = null;
try
{
date = sdf.parse(resDateArray[3]);
}
catch (ParseException e) {
e.printStackTrace();
}
final Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//tp is reference variable for time picker
tp.setCurrentHour(calendar.get(Calendar.HOUR));
tp.setCurrentMinute(calendar.get(Calendar.MINUTE));
}//else
You should use a SimpleDateFormat
to get a Date
object from your String
.
Then just call
picker.setCurrentHour(date.getHours())
and
picker.setCurrentMinute(date.getMinutes())
Since the Date
object is deprecated, you should use a Calendar
instead of it.
You can instantiate a Calendar
this way:
Calendar c = Calendar.getInstance();
c.setTime(date);
picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));
picker.setCurrentMinute(c.get(Calendat.MINUTE));
Edit: the complete code:
import java.util.Date;
import java.text.SimpleDateFormat; //Don't use "android.icu.text.SimpleDateFormat"
import java.text.ParseException; //Don't use "android.net.ParseException"
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
Date date = null;
try {
date = sdf.parse("07:00");
} catch (ParseException e) {
}
Calendar c = Calendar.getInstance();
c.setTime(date);
TimePicker picker = new TimePicker(getApplicationContext());
picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));
picker.setCurrentMinute(c.get(Calendar.MINUTE));