如何更改datepickerdialog上显示的日期?

时间:2012-11-07 09:17:12

标签: android datepickerdialog

我的应用中有以下小部件。如果它说设置日期,则可以将其替换为星期几,月,日和年。例如,2012年11月7日结婚?

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

enter image description here

[UPDATE1]

@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;
    }

[UPDATE2]

@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;
    }

2 个答案:

答案 0 :(得分:0)

是。我用下面的代码做了..你必须根据你的要求改变。

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

答案 1 :(得分:0)

如果您只想用当前日期初始化它作为当前日期的提醒(或者至少在用户与选择器交互时不需要更改),您可以通过创建临时变量来实现在其上调用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;

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

如果你想要更新标题,因为他们正在更改选择器上的日期,那会更多涉及,但我无法想象你的目标是什么(除非重点是看星期几)在他们改变它的背景下?)。如果是,请告诉我,我会详细说明。