Android DatePickerDialog Название Выпуск - PullRequest
1 голос
/ 13 апреля 2011

Я реализовал DatePickerDialog, и он работает. Однако название, похоже, не имеет формата. Например, он должен гласить: вторник, 12 апреля 2011 года. Но вместо этого он читает 3, 2011 4 12.

Исходный код выглядит так, как будто он должен форматировать заголовок, но это не так:

private void updateTitle(int year, int month, int day) {
    mCalendar.set(Calendar.YEAR, year);
    mCalendar.set(Calendar.MONTH, month);
    mCalendar.set(Calendar.DAY_OF_MONTH, day);
    setTitle(mTitleDateFormat.format(mCalendar.getTime()));
}

1 Ответ

4 голосов
/ 10 августа 2011

Как вы говорите, формат заголовка DatePickerDialog зависит от "mTitleDateFormat", который инициализируется в конструкторе DatePickerDialog, например так: mTitleDateFormat = java.text.DateFormat.getDateInstance (java.text.DateFormat.FULL);

Но mTitleDateFormat является закрытым, внешний не может изменяться. Так что вы можете расширить класс DatePickerDialog.

Следующий код хорошо работает в моей работе.Код класса:

class DatePickerDialog extends android.app.DatePickerDialog {
    public DatePickerDialog(Context context, OnDateSetListener callBack,
            int year, int monthOfYear, int dayOfMonth) {
        super(context, callBack, year, monthOfYear, dayOfMonth);
        updateTitle(year, monthOfYear, dayOfMonth);
    }
    public void onDateChanged(DatePicker view, int year,
            int month, int day) {
        updateTitle(year, month, day);
    }
    private void updateTitle(int year, int month, int day) {
        Calendar mCalendar = Calendar.getInstance();
        mCalendar.set(Calendar.YEAR, year);
        mCalendar.set(Calendar.MONTH, month);
        mCalendar.set(Calendar.DAY_OF_MONTH, day);
        setTitle(getFormat().format(mCalendar.getTime()));
    }   
        /*
         * the format for dialog tile,and you can override this method
         */
    public SimpleDateFormat getFormat(){
        return new SimpleDateFormat("yyyy-MM-dd");
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...