【发布时间】:2018-10-06 09:57:14
【问题描述】:
我的应用使用DatePicker。当我打开DatePicker 并单击Done 时,日期会被选中。问题是,如果用户点击DatePicker 之外的日期,也会选择日期。见这里:
Listener 只有在单击Done Button 时才会做出反应。但是,如果单击DatePicker 的周围(红色),它也会做出反应。
我的问题:
如何防止这种情况发生?
如果你想看一些代码,请发表评论。
我已经试过了: How to handle date picker dialog not to set in edittext when clicked outside of dialog android?
Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
//DatePickerDialog mDatePicker;
DatePickerDialog mDatePicker;
mDatePicker = new DatePickerDialog(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT, new DatePickerDialog.OnDateSetListener() {
private boolean fired;
public void resetFired(){
fired = false;
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
if(view.isShown()){
if(fired){
setDate(year, monthOfYear, dayOfMonth);
//ListView erneuern
adapter.notifyDataSetChanged();
return;
}
fired = true;
}
}
}, mYear, mMonth, mDay);
mDatePicker.setCanceledOnTouchOutside(true);
mDatePicker.setTitle("Wähle ein Datum");
mDatePicker.show();
但它不能正常工作。点击背景错误得到解决。但是现在Done Button 停止工作了。
【问题讨论】:
-
我试过了,但它不起作用。请参阅我更新的问题。
标签: java android datepicker listener