关于日期选择器和时间选择器的简单应用

时间选择器timepicker和日期选择器datepicker
DatePicker用init方法初始化日期并且使用setOnDateChangedListener。
TimePicker直接使用setOnTimeChangedListener来处理时间选择器。
而且都可以使用Dialog方法来显示选择器对话框,视觉效果很好。

public class MainActivity extends Activity {
    private TimePicker timePicker;
    private DatePicker datePicker;
    private Calendar cal;
    private int year, month, day, hour, minute;

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        //获取日历对象
        cal = Calendar.getInstance ();
        //获取时分秒
        year = cal.get (Calendar.YEAR);
        month = cal.get (Calendar.MONTH) + 1;
        day = cal.get (Calendar.DAY_OF_MONTH);
        hour = cal.get (Calendar.HOUR_OF_DAY);
        minute = cal.get (Calendar.MINUTE);
        setTitle (year + "-" + month + '-' + day + "-" + hour + ":" + minute);
        datePicker = (DatePicker) findViewById (R.id.datePicker);
        timePicker = (TimePicker) findViewById (R.id.timePicker);
        //如果是datepciker 就初始datepicker
        datePicker.init (year, cal.get (Calendar.MONTH), day, new DatePicker.OnDateChangedListener () {
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                setTitle (year + "-" + (monthOfYear + 1) + '-' + dayOfMonth);
            }
        });
        //如果是timepicker就直接设置监听器
        timePicker.setOnTimeChangedListener (new TimePicker.OnTimeChangedListener () {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                setTitle (hourOfDay+":"+minute);
            }
        });
       //日期选择对话框,选择效果更加明显
       new DatePickerDialog (this, new DatePickerDialog.OnDateSetListener () {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                setTitle (year + "-" + (monthOfYear + 1) + '-' + dayOfMonth);
            }
        },year, cal.get (Calendar.MONTH) ,day).show ();
        //时间选择对话框,效果同上
        new TimePickerDialog (this, new TimePickerDialog.OnTimeSetListener () {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                setTitle (hourOfDay+":"+minute);
            }
        },hour,minute,true).show ();
    }
}

猜你喜欢

转载自blog.csdn.net/rikkatheworld/article/details/78024727
今日推荐