I created a custom data collector in which I show the years from 1950 to 2016. Now, when I first open the collector, I want to set the current data of the day. but I can not set the current data. after the first start it works exactly the same as I want it to work.
Here is the code I've tried so far
private void openDatePicker(int month, int day, int year) { try { Log.e("calender", "MONTH = " + month); Log.e("calender", "DAY_OF_WEEK = " + day); Log.e("calender", "YEAR = " + year); m_calendar.set(Calendar.DAY_OF_MONTH, month); m_calendar.set(Calendar.MONTH, day); m_calendar.set(Calendar.YEAR, year); int p_minYear, p_minMonth, p_minDay; int p_maxYear, p_maxMonth, p_maxDay; p_minDay = 1; p_minMonth = 0; p_minYear = 1950; p_maxDay = 31; p_maxMonth = 11; p_maxYear = 2016; Calendar m_maxDateCalendar = Calendar.getInstance(); m_maxDateCalendar.set(Calendar.YEAR, p_maxYear); m_maxDateCalendar.set(Calendar.MONTH, p_maxMonth); m_maxDateCalendar.set(Calendar.DAY_OF_MONTH, p_maxDay); Calendar m_minDateCalendar = Calendar.getInstance(); m_minDateCalendar.set(Calendar.YEAR, p_minYear); m_minDateCalendar.set(Calendar.MONTH, p_minMonth); m_minDateCalendar.set(Calendar.DAY_OF_MONTH, p_minDay); new YearPicker(m_context, m_datePickerListener, m_minDateCalendar, m_maxDateCalendar, m_calendar).show(); } catch (Throwable p_e) {
here are the pounds I use for the year Picker YearPicker.Java
public class YearPicker extends DatePickerDialog { private int maxYear = 0; private int maxMonth = 0; private int maxDay = 0; private int minYear = 0; private int minMonth = 0; private int minDay = 0; private Calendar m_minDateCalendar, m_maxDateCalendar, m_calendar; private boolean m_fired = false; public YearPicker(Context context, OnDateSetListener callBack, Calendar p_minCalendar, Calendar p_maxCalendar, Calendar p_currentCalendar) { super(context, callBack, p_currentCalendar.get(Calendar.YEAR), p_currentCalendar.get(Calendar.MONTH), p_currentCalendar .get(Calendar.DAY_OF_MONTH)); m_minDateCalendar = (Calendar) p_minCalendar.clone(); m_maxDateCalendar = (Calendar) p_maxCalendar.clone(); m_calendar = (Calendar) p_currentCalendar.clone(); // m_calendar = p_currentCalendar; Log.e("m_calendar", "=> " + m_calendar.get(Calendar.MONDAY)); Log.e("m_calendar", "=> " + m_calendar.get(Calendar.DAY_OF_WEEK)); Log.e("m_calendar", "=> " + m_calendar.get(Calendar.YEAR)); this.minDay = m_minDateCalendar.get(Calendar.DAY_OF_MONTH); this.minMonth = m_minDateCalendar.get(Calendar.MONTH); this.minYear = m_minDateCalendar.get(Calendar.YEAR); this.maxDay = m_maxDateCalendar.get(Calendar.DAY_OF_MONTH); this.maxMonth = m_maxDateCalendar.get(Calendar.MONTH); this.maxYear = m_maxDateCalendar.get(Calendar.YEAR); try { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { m_fired = false; this.getDatePicker().setMaxDate( m_maxDateCalendar.getTime().getTime()); this.getDatePicker().setMinDate( m_minDateCalendar.getTime().getTime()); } else { m_fired = true; } } catch (Throwable p_e) { Log.d("m_maxDateCalendar", "" + m_maxDateCalendar.getTime().getTime()); Log.d("m_minDateCalendar", "" + m_minDateCalendar.getTime().getTime()); Log.d("m_calendar", "" + m_calendar.getTime().getTime()); p_e.printStackTrace(); } } @Override public void onDateChanged(DatePicker p_view, int p_year, int p_monthOfYear, int p_dayOfMonth) { super.onDateChanged(p_view, p_year, p_monthOfYear, p_dayOfMonth); if (m_fired) { m_calendar.set(Calendar.YEAR, p_year); m_calendar.set(Calendar.MONTH, p_monthOfYear); m_calendar.set(Calendar.DAY_OF_MONTH, p_dayOfMonth); if (m_calendar.after(m_maxDateCalendar)) { m_fired = true; if (maxMonth > 11) { maxMonth = 11; } p_view.updateDate(maxYear, maxMonth, maxDay); } else if (m_calendar.before(m_minDateCalendar)) { m_fired = true; if (minMonth > 11) { minMonth = 11; } p_view.updateDate(minYear, minMonth, minDay); } else { m_fired = true; p_view.updateDate(p_year, p_monthOfYear, p_dayOfMonth); } } } }
What i need now
I want to set the current date of the day the collector opens for the first time.
eg! if the user wants to select a date, then he will not initially select a date. but when he clicks on the date section, he will be invited using the Date Sensor. at this time I want to set the current date of the day. Thanks, please help.