Android日期时间选择器
程序员文章站
2022-06-22 21:22:28
一,build.gradle 引用implementation "com.contrarywind:Android-PickerView:3.2.7"二,layout布局文件
一,build.gradle 引用
implementation "com.contrarywind:Android-PickerView:3.2.7"
二,layout布局文件
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="请选择日期时间"
android:id="@+id/data_time_tv"></TextView>
三,Activity中代码
TimePickerView pvTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//日期时间控件
TextView data_time_tv = findViewById(R.id.data_time_tv);
data_time_tv .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//点击组件的点击事件
pvTime.show(data_time_tv);
}
});
//控制时间范围(如果不设置范围,则使用默认时间1900-2100年,此段代码可注释)
//因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11
Calendar selectedDate = Calendar.getInstance();
Calendar startDate = Calendar.getInstance();
startDate.set(2020, 0, 1);
Calendar endDate = Calendar.getInstance();
endDate.set(2040, 11, 31);
//时间选择器
pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {//选中事件回调
// 这里回调的v,就是show()方法里面所添加的 View 参数,如果show的时候没有添加参数,v则为null
TextView tv = (TextView) v;
tv.setText(getTimes(date));
}
})
//年月日时分秒的显示与否,不设置则默认全部显示,这里可自行定制
.setType(new boolean[]{true, true, true, true, true, false})
.setLabel(" 年", "月", "日", "时", "分", "")
.isCenterLabel(true)
.setDividerColor(Color.DKGRAY)
.setContentSize(20)
.setDate(selectedDate)
.setRangDate(startDate, endDate)
.setDecorView(null)
.build();
}
private String getTimes(Date date) {//可根据需要自行格式化数据显示
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return format.format(date);
}
效果图展示,使用这个可以单独展示日期、单独展示时间。也可以都展示,按需吧。
本文地址:https://blog.csdn.net/wjw_java/article/details/107464479
下一篇: Android实现状态栏沉浸