持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情
前面给大家介绍了一些 Android 开发中常用的控件,今天给大家介绍的这个控件依然是日常开发中经常用到的一个控件,日期选择控件。
大家在日常开发过程中免不了有需要用户填写日期的需求,一般这个时候我们都会叫用户选择日期而不是输入日期,避免用户输入错误的情况。那么首先我们为大家介绍第一个日期选择控件 DatePicker 。
DatePicker 基本使用
首先让我们来实现一个 DateOicker
我们看到 DateOicker控件 有两种日期选择模式,一种是滑动选择 spinner,一种是日历选择 calendar,可以通过 dataPickerNode 属性 来设置(注意:spinner 模式必须把 calendarViewShown 属性设置为 false,否则两种模式同时显示)。
我们这里选用 spinner 模式,所以一些 calendar 的属性 在日后用到的时候我们在做介绍。
DatePicker 获取日期
接下来我们来看一下怎么获取到用户选择的日期:
首先我们利用 id 获取到 DatePicker 控件
之后使用 getYear() 方法获取 年;
getMonth() 方法获取 月;
getDayOfMonth() 方法获取 日;
(注意:月份 是从 0 开始,所以我们的真正要的月份数据需要 + 1)
我这里利用 “获取日期” 按钮来获取日期并且显示在 TextView 文本控件中
DatePicker time_d1 = findViewById(R.id.time_d1);
@Override
public void onClick(View view) {
String gettime = String.format("选择的日期为:%s年%s月%s日",time_d1.getYear(),time_d1.getMonth() + 1,time_d1.getDayOfMonth());
time_t1.setText(gettime);
}
DatePickerDialog 基本使用
我们看到 DatePicker 控件 是直接显示在页面中的,很多时候我们希望的是用户点击某区域,然后弹出选择框来选择日期,这个时候我们可以使用 DatePickerDialog 日期选择对话框。
现在我们给 “拉起日期选择框” 按钮,创建点击监听器,令其在发生点击的时候拉起 DatePickerDialog 对话框。
@Override
public void onClick(View view) {
DatePickerDialog dialog = new DatePickerDialog(this, this, 2022,10,1);
dialog.show();
}
DatePickerDialog 对话框,如我们之前学习的 提示对话框类似,不同的是它需要传递对话框的默认显示日期(后三个参数)。
在用户点击确定按钮时,我们获取到选择的日期,并显示在 TextView 文本框 中。
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
String gettime1 = String.format("选择的日期为:%s年%s月%s日",i,i1,i2);
time_t1.setText(gettime1);
}
这里需要注意的是,DatePickerDialog 获取的月份就是实际月份 不需要再做 +1 处理。
那么 Android 中时间选择的控件,DatePicker 以及 DatePickerDialog 的基本常用方法就到先介绍到这里,它们的其他属性和使用方法我们在日后使用过程中在做介绍。