Only getting DatePickerDialog's value when Done button is being pressed

By referring DateWidgets1.java in API demo, I tend to show date picker widget through the following way.

private void initDateTextView() {
    dateTextView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            showDialog(DATE_DIALOG_ID);                
        }            
    });
}

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
       // set date picker as current date
       return new DatePickerDialog(this, datePickerListener, 
                     this.year, this.month, this.date);
    }
    return null;
}

@Override
protected void onPrepareDialog(int id, Dialog dialog) {
    switch (id) {
    case DATE_DIALOG_ID:
        ((DatePickerDialog)dialog).updateDate(this.year, this.month, this.date);
    }        
}

private static final int DATE_DIALOG_ID = 0;
private final DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
    // When dialog box is closed, below method will be called.
    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
        Log.i("CHEOK", selectedYear + ", " + selectedMonth + ", " + selectedDay);
    }
};

However, I realize, onDateSet will always be called, with latest spinner selected date, regardless I am pressing dialog's Done button, or pressing the phone's soft back button.

I am only interested in getting the selected date, when user pressing Done button, but not back button.

Is there any way I can achieve so?

Answers


This seems to be a bug in the framework as discussed in this post (with a suggested workaround included).


Need Your Help

Why does calling this function change my array?

perl arrays file

Perl seems to be killing my array whenever I read a file:

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.