1

我的应用程序中有以下小部件。如果它说设置日期,可以用星期几、月份、月份和年份来替换它。例如 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;
    }
4

2 回答 2

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;

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

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

于 2012-11-10T03:12:23.907 回答
0

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

dPicker.init((previouslyEnteredDate.getYear() + 1900),
                        previouslyEnteredDate.getMonth(),
                        previouslyEnteredDate.getDate(), null);
于 2012-11-07T09:42:27.863 回答