使用时间选择器总比一个个的手动输入时间的用户体验好,实际中的应用也挺多的。
先看看张什么样吧:
以上两种是以对话框的方式显示的,看着也比较舒服,还有一种是直接粘贴在界面上的(图略了哈)
接下来分别介绍:
public class MainActivity extends AppCompatActivity { private DatePicker mDatePicker; private TimePicker mTimePicker; private TextView mShowTime; private Calendar calendar; private int year; private int month; private int day; private int hours; private int min; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取时间对象 calendar = Calendar.getInstance(); year = calendar.get(Calendar.YEAR); //月份是从0开始的所以要+1,才能正确显示 month = calendar.get(Calendar.MONTH) + 1; day = calendar.get(Calendar.DAY_OF_MONTH); hours = calendar.get(Calendar.HOUR_OF_DAY); min = calendar.get(Calendar.MINUTE); mShowTime = (TextView) findViewById(R.id.showtime); mShowTime.setText("当前时间为" + year + "-" + month + "-" + day + " " + hours + ":" + min ); mDatePicker = (DatePicker) findViewById(R.id.datepicker); //使用init方法初始化日历上的日期,做了相应的处理,所以此处不用+1 mDatePicker.init(year, calendar.get(Calendar.MONTH), day, new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker datePicker, int year, int monthOfYear, int daysOfMonth) { //监听日历的变化,月份仍是从0开始,所以还要+1 mShowTime.setText(year + "-" + (monthOfYear + 1) + "-" + daysOfMonth); } }); mTimePicker = (TimePicker) findViewById(R.id.timepicker); mTimePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker timePicker, int i, int i1) { mShowTime.setText(i + ":" + i1); } }); } /** * 日历以对话框的形式弹出 * @param view */ public void dateDialogClick(View view) { new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int daysOfMonth) { //记得获取的月份要+1 mShowTime.setText(year + "-" + monthOfYear + "-" + daysOfMonth); } }, year, month-1, day).show();//此处的参数是设置在日历上的初始时间,不要做+1处理,一定不要忘了show哈,否则没有效果的 } /** * 时间以对话框的形式弹出 * @param view */ public void timeDialogClick(View view) { new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int hours, int min) { mShowTime.setText(hours + ":" + min); } }, hours, min, true).show(); } }注意月份的+1 问题,就没有什么难点了
