我有一个在android中制作动态时间选择器对话框的需求。基本上,每次我从日历中选择日期时,时间都会发生变化,并且每次的范围都会发生变化。因此,假设在2017年4月5日,时间范围为9-2,最小值必须为9,最大值必须为2,增量为1。到目前为止,我所做的只是设置了一个时间选择器对话框
private void calltimerange() {
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
final TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
// Toast.makeText(context, "" + selectedHour + ":" + selectedMinute, Toast.LENGTH_SHORT).show();
tvTime.setText(String.valueOf(selectedHour));
mytime = String.valueOf(selectedHour);
}
}, hour, minute, true);//Yes 24 hour time
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}任何帮助都将不胜感激。谢谢
发布于 2017-04-05 13:04:01
如果你想用简单的方式,我建议你使用:
MaterialDateTimePicker by wdullaer
并查找此功能:
设置要选择的最小有效时间。当天早些时候的时间值将是deactivated
设置要选择的最大有效时间。当天晚些时候的时间值将是deactivated
您可以传入一个时间点数组。这些值是选取器中唯一有效的选择。setMinTime(时间点时间)和setMaxTime(时间点时间)将进一步削减此列表。
发布于 2017-04-05 13:23:05
private void editTextDatePicker() {
final EditText et_datepicker = new EditText(this);
final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy", Locale.US);
et_datepicker.setLayoutParams(lparams);
et_datepicker.setPadding(20, 10, 20, 10);
et_datepicker.setHint("Pick your Date");
et_datepicker.setFocusable(false);
et_datepicker.setGravity(1);
et_datepicker.setBackgroundResource(R.drawable.edittext_background);
Calendar newCalendar = Calendar.getInstance();
final DatePickerDialog datepicker = new DatePickerDialog(this, R.style.dialogTheme, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
et_datepicker.setText(dateFormatter.format(newDate.getTime()));
}
}, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
et_datepicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datepicker.show();
}
});
linerLayoutChild.addView(et_datepicker); // here lineaLayoutChild is the object for your layout where you want to add.
}https://stackoverflow.com/questions/43222087
复制相似问题