【问题标题】:Android DatePickerDialog Title IssueAndroid DatePickerDialog 标题问题
【发布时间】:2011-08-04 09:14:27
【问题描述】:

我已经实现了 DatePickerDialog,它可以工作。但是,标题似乎没有格式。例如,它应该是:Tuesday, April 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()));
}

【问题讨论】:

  • 我实际上找到了答案。如果我扩展 DatePickerDialog,我可以更好地控制它并根据自己的喜好修改标题。

标签: android date format


【解决方案1】:

正如您所说,DatePickerDialog 标题格式取决于在 DatePickerDialog 构造函数中初始化的“mTitleDateFormat”, 像这样: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");
    };
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多