在android中设置时间和dateselect器和时间select器
我在我的应用程序中使用dateselect器和时间select器。 我想设置页面加载的date和时间。 这可能吗? 怎么会这样?
我解决了类似的问题,我的如下
Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); int day = cal.get(Calendar.DAY_OF_MONTH); int hour = cal.get(Calendar.HOUR_OF_DAY); int min = cal.get(Calendar.MINUTE); datePicker.updateDate(year, month, day); timePicker.setCurrentHour(hour); timePicker.setCurrentMinute(min);
使用JodaTime
JodaTime是用于处理Javadate和时间的非常stream行和有用的库。 如果你不使用它,我强烈build议看看它。
下面是我如何从DateTime
对象(可能是当前date或过去或未来的任何date)(此例中的属性称为inspected_at
)设置DatePicker
和TimePicker
的简单示例:
DatePicker datePicker = (DatePicker) findViewById(R.id.inspected_at_date); TimePicker timePicker = (TimePicker) findViewById(R.id.inspected_at_time); DateTime inspected_at = DateTime.now() // Typically pulled from DB. int year = inspected_at.getYear() ; int month = inspected_at.getMonthOfYear() - 1; // Need to subtract 1 here. int day = inspected_at.getDayOfMonth(); int hour = inspected_at.getHourOfDay(); int minutes = inspected_at.getMinuteOfHour(); datePicker.updateDate(year, month, day); // Set date. timePicker.setCurrentHour(hour); // Set time. timePicker.setCurrentMinute(minutes);
希望有所帮助。
J.P
DatePicker有一个updateDate
方法。
这是我在我的一个应用程序中使用的,而不是使用对话框:
//set datePicker to position String date_saved = project_row.getString( project_row.getColumnIndex("project_startdate")); int day = Integer.parseInt(date_saved.substring(0,2)); int year = Integer.parseInt(date_saved.substring(5,9)); String month = date_saved.substring(2,5); int month_code = getMonthInt(month); project_startdate_data = (DatePicker) findViewById(R.id.project_startdate_data); project_startdate_data.updateDate(year, month_code, day);
其中project_row
是我的光标,并且date保存在像22MAY2012
一样的project_startdate
列中
你需要这个:
private int getMonthInt(String month) { if (month.equalsIgnoreCase("JAN")) return 0; if (month.equalsIgnoreCase("FEB")) return 1; if (month.equalsIgnoreCase("MAR")) return 2; if (month.equalsIgnoreCase("APR")) return 3; if (month.equalsIgnoreCase("MAY")) return 4; if (month.equalsIgnoreCase("JUN")) return 5; if (month.equalsIgnoreCase("JUL")) return 6; if (month.equalsIgnoreCase("AUG")) return 7; if (month.equalsIgnoreCase("SEP")) return 8; if (month.equalsIgnoreCase("OCT")) return 9; if (month.equalsIgnoreCase("NOV")) return 10; if (month.equalsIgnoreCase("DEC")) return 11; //return -1 if month code not found return -1; }
选中这个如何使用dateselect器对话框 。 并使用onCreate()中的update函数; 如果通过页面加载你的意思是活动开始….希望它有帮助。
检查这个 。
使用showDialog(TIME_DIALOG_ID);
函数在onCreate();