Android DatePickerDialog标题问题

发布于 2024-11-01 06:36:09 字数 409 浏览 2 评论 0原文

我已经实现了 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()));
}

I have implemented the DatePickerDialog, and it works. However, the title seems to not have a format. For example, it should read: Tuesday, April 12, 2011. But instead it reads 3, 2011 4 12.

The source code looks like it should be formatting the title, but it isn't:

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()));
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

喜爱纠缠 2024-11-08 06:36:09

正如你所说,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");
    };
}

As you say,DatePickerDialog title format depend "mTitleDateFormat" that initialize in DatePickerDialog constructor,
like this:mTitleDateFormat = java.text.DateFormat. getDateInstance(java.text.DateFormat.FULL);

But mTitleDateFormat is private ,outer can not modify .So you can extends class DatePickerDialog .

The follow code work well in my work.
Class code:

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");
    };
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文