DatePicker和TimePicker-->日期选择器和时间选择器
DatePickerDialog和TimePickerDialog-->日期选择器框和时间选择器框
1.两种选择器的监听方法
①OnDateChangedListener----->onDateChange()
②OnTimeChangedListener------->onTimeChanged()
2.Dialog两种选择器的监听方法
①OnDateSetListene---->onDateSet()
②OnTimeSetListener---->onTimeSet()
这是直接在主界面代码,直接调试显示
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TimePicker timePicker;
private DatePicker datePicker;
private Calendar cal;
private TextView ok,okTime;
private int year;
private int moth;
private int day;
private int hour;
private int minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timePicker=findViewById(R.id.timePicker);
datePicker=findViewById(R.id.dataPicker);
ok=findViewById(R.id.ok);
ok.setOnClickListener(this);
okTime=findViewById(R.id.okTime);
okTime.setOnClickListener(this);
//获取日历对象
cal=Calendar.getInstance();
//获取年月日时分秒
year=cal.get(Calendar.YEAR);
moth=cal.get(Calendar.MONTH);
day=cal.get(Calendar.DAY_OF_MONTH);
hour=cal.get(Calendar.HOUR_OF_DAY);
minute=cal.get(Calendar.MINUTE);
// setTitle(year+"-"+moth+"-"+day+"-"+hour+"-"+minute);
//初始化datePicker
datePicker.init(year, cal.get(Calendar.MONTH), day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
setTitle(i+"-"+(i1+1)+"-"+i2);
//上面1是月份因为获取默认为0所以要加上1
}
});
//timePicker不需要初始化直接监听
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker timePicker, int i, int i1) {
setTitle(i+":"+i1);//显示在导航栏中
}
});
}}
下面是点击弹出dialog
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.ok: //绑定监听器
DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
setTitle(i+"-"+(i1+1)+"-"+i2);
}
};
// // 直接创建一个DatePickerDialog对话框实例,并将它显示出来
new DatePickerDialog(MainActivity.this,listener,year,cal.get(Calendar.MONTH),day).show();
break;
case R.id.okTime:
TimePickerDialog.OnTimeSetListener timeSetListener=new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
setTitle(i+":"+i1);
}
};
new TimePickerDialog(MainActivity.this,timeSetListener,hour,minute,true).show();
break;
}
点击DateDialog
效果如下:
时间选择器跟上面效果类似