现在好多项目上都会用到日期和时间选择,Android就有一款原生的,先看效果
上面是效果图,实现代码很简单,如下:
/** * 日期选择 * @param activity * @param themeResId * @param tv * @param calendar */ public static void showDatePickerDialog(Activity activity, int themeResId, final TextView tv, Calendar calendar) { // 直接创建一个DatePickerDialog对话框实例,并将它显示出来 new DatePickerDialog(activity , themeResId,new DatePickerDialog.OnDateSetListener() { // 绑定监听器(How the parent is notified that the date is set.) @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // 此处得到选择的时间,可以进行你想要的操作 tv.setText("您选择了:" + year + "年" + (monthOfYear+1)+ "月" + dayOfMonth + "日"); } } // 设置初始日期 , calendar.get(Calendar.YEAR) ,calendar.get(Calendar.MONTH) ,calendar.get(Calendar.DAY_OF_MONTH)).show(); }这是日期选择,里面的themeresid表示的是效果的背景色,设置为2就是上面的效果图,当点击确认后就会触发上面的onDateSet方法,在这里就可以做操作,同理,时间选择如下:,同样很简单,还有一些简单的操作可以自行百度。
/** * 时间选择 * @param activity * @param themeResId * @param tv * @param calendar */ public static void showTimePickerDialog(Activity activity,int themeResId, final TextView tv, Calendar calendar) { // Calendar c = Calendar.getInstance(); // 创建一个TimePickerDialog实例,并把它显示出来 // 解释一哈,Activity是context的子类 new TimePickerDialog( activity,themeResId, // 绑定监听器 new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { tv.setText("您选择了:" + hourOfDay + "时" + minute + "分"); } } // 设置初始时间 , calendar.get(Calendar.HOUR_OF_DAY) , calendar.get(Calendar.MINUTE) // true表示采用24小时制 ,true).show();
}