當我更改日期時,OnDateSetListener()
未被調用。即使setMinDate(day);
行不起作用。我認爲出於某種原因DatePickerDialog
還沒有註冊OnDateSetListener()
。但無法弄清楚。我已經聲明對話框和偵聽器都是全局的。OnDateSetListener()沒有被調用
private DatePickerDialog datePicker;
private DatePickerDialog.OnDateSetListener dateListener;
代碼:
// Create dialogs for datePicker
private void createDatePicker() {
Calendar calendar = Calendar.getInstance(Locale.getDefault());
int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);
datePicker = new DatePickerDialog(this, dateListener, year, month, day);
datePicker.getDatePicker().setMinDate(day);
dateListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Log.d(TAG, "Date changed.");
}
};
}
private void setEditTextListeres() {
myEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
Log.d(TAG, "EditText gained focus.");
datePicker.show();
}
}
});
}
任何想法,爲什麼監聽器不會被調用?爲什麼setMinDate()不工作?
嘗試將'datePicker = new DatePickerDialog(this,dateListener,year,month,day);'在'dateListener'定義之後'。 –
@Rapunzel我正在嘗試相同的。它調用監聽器,但是兩次。而setMinDate()仍然不起作用。 – Geek
其中你叫createDatePicker()。 – Sam