【问题标题】:how to change the date displayed on a datepickerdialog?如何更改日期选择器对话框上显示的日期?
【发布时间】:2012-11-07 09:17:11
【问题描述】:

我的应用中有以下小部件。如果它说设置日期,可以用星期几、月份、月份和年份来替换它。例如 2012 年 11 月 7 日星期三?

我在 htc 上运行 Android 4,而我知道如果我在 Android 2.3.3 上运行相同的代码,日期会以我想要的方式显示。

.[更新1]

@Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_DIALOG_ID:
            // set date picker as current date

            return new DatePickerDialog(this,2 ,datePickerListener, year, month, day);
        }
        return null;
    }

.[更新2]

@Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_DIALOG_ID:
            // set date picker as current date

            final DateFormat df = DateFormat.getDateInstance(0);
              final Calendar mCal = Calendar.getInstance();
               // Create a date picker dialog
               DatePickerDialog datePickerDialog = new DatePickerDialog(this,2,datePickerListener, year, month, day){
                   @Override
                   public void onDateChanged(DatePicker view, int year,int month, int day){
                       mCal.set(Calendar.YEAR, year);
                        mCal.set(Calendar.MONTH, month);
                        mCal.set(Calendar.DAY_OF_MONTH, day);
                       setTitle(df.format(mCal.getTime()));
                   }
               };
            return datePickerDialog;
            //return new DatePickerDialog(this,2 ,datePickerListener, year, month, day);
        }
        return null;
    }

【问题讨论】:

    标签: android datepickerdialog


    【解决方案1】:

    是的。我用下面的代码做到了。你必须根据你的要求进行更改。

    dPicker.init((previouslyEnteredDate.getYear() + 1900),
                            previouslyEnteredDate.getMonth(),
                            previouslyEnteredDate.getDate(), null);
    

    【讨论】:

    • 嗨,我已经用创建 datepickerdialog 的代码更新了帖子。我没有按照您的建议使用日期选择器。谢谢
    【解决方案2】:

    如果您只想使用当前日期对其进行初始化以提醒今天是什么(或者至少不需要在用户与选择器交互时更改它),您可以通过创建一个临时变量和在其上调用setTitle(CharSequence) 方法(因为DatePickerDialog 扩展AlertDialog

    例如:

    case DATE_DIALOG_ID:
          // set date picker as current date
          DatePickerDialog dpd = new DatePickerDialog(this, 2, datePickerListener,
                                                      year, month, day);
          dpd.setTitle("Today is: " + year + "-" + (month + 1) + "-" + day);
          return dpd;
    

    好吧,我对格式有点懒,很明显,但我希望你明白基本的想法。

    如果您希望标题在他们更改选择器上的日期时更新,这会涉及更多,但我无法想象这就是您想要的(除非重点是查看星期几在上下文中,因为他们正在改变它?)。如果是,请告诉我,我会详细说明。

    【讨论】:

    • 您好,感谢您的回复。我已经更新了我的帖子以包含代码修改。除了在用户与小部件交互之前未在标题中设置日期外,它工作正常。如何初始化小部件?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    相关资源
    最近更新 更多