Hello Guys我是Android新手并面临问题我已经搜索了很多但没有使用DatePickerDialog框获得解决方案,而且当我运行应用程序时它也选择了以前的日期,尽管我已经设置了最小日期。我试过从当前时间减去1秒。和DatePicker从1990年1月开始。我希望它从今天开始并阻止以前的日期。谢谢......
public void OnButtonClickDate()
{
btn_date = (Button)findViewById(R.id.button);
edit_date = (EditText)findViewById(R.id.editText);
btn_date.setOnClickListener
(
new View.OnClickListener()
{
@Override
public void onClick(View view)
{
DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
view.setMinDate(System.currentTimeMillis());
edit_date.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
}
);
}
答案 0 :(得分:0)
尝试将代码调整为此。
btn_date = (Button) findViewById(R.id.button);
edit_date = (EditText) findViewById(R.id.editText);
DatePickerDialog datePickerDialog = new
DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
datePickerDialog.setMinDate(System.currentTimeMillis());
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
edit_date.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
}
}, mYear, mMonth, mDay);
datePickerDialog.setMinDate(System.currentTimeMillis());
btn_date.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
datePickerDialog.show();
}
}
);
Android日历视图是一系列错误。如果上述方法失败,您可以尝试从选择器中删除CalendarView。绕过这些错误的其他方法are described here
datePicker.setCalendarViewShown(false);
或者尝试使用a library来实现此功能
compile "com.wdullaer:materialdatetimepicker:2.4.0"
答案 1 :(得分:0)
嘿,您可以使用以下代码示例在应用程序中设置最小日期:
Date date = new Date();
final long todayInMillis = date.getTime();
final long thirteenyearMillis = 409968000000L;
final long eightyYearMillis = 2522880000000L;
final long maxDate = todayInMillis - thirteenyearMillis;
final long minDate = todayInMillis - eightyYearMillis;
希望你能从上面的例子中得到一个想法...