【问题标题】:Date picker with default date具有默认日期的日期选择器
【发布时间】:2012-08-13 04:52:50
【问题描述】:

在我的应用程序中,我使用日期选择器让用户选择日期。另外,我在我的应用程序中使用数据库,如果用户选择 1 个特定项目,则意味着我将获取与该项目相关的数据,并将其显示在另一个屏幕中,因为它将有 1 个开始日期,我必须将该日期加载为日期选择器中的默认日期..但它将当前日期加载为默认日期,而不是从数据库中获取的日期..请帮助我..提前谢谢.

我的代码:

 c = Calendar.getInstance();               
               SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
               System.out.println("After format");
               Date pickdefdate=null;
//             String pickdefdatepar=null;
               try {
                   System.out.println("Inside try="+date);
              pickdefdate=sdf.parse(date);              ----------->date which is fetched from database.
              System.out.println("dddddddd="+pickdefdate);

              c.setTime(pickdefdate);    --------------------->Setting this date as current date..
              System.out.println("After parse");
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }           
               mYear = c.get(Calendar.YEAR);             ----------as u said i am setting this value before dialog.
               mMonth = c.get(Calendar.MONTH);
               mDay = c.get(Calendar.DAY_OF_MONTH);     
               showDialog(DATE_DIALOG_ID);



 protected Dialog onCreateDialog(int id) 
     {
            switch (id) {
            case DATE_DIALOG_ID:
                System.out.println("in dia="+mDay);
                return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
            }
            return null;
        }    

     private DatePickerDialog.OnDateSetListener mDateSetListener =
                new DatePickerDialog.OnDateSetListener() {
                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        System.out.println("Inside dia");
                        mYear = year;
                        mMonth = monthOfYear;
                        mDay = dayOfMonth;
                    }
            };

【问题讨论】:

  • 检查从您的数据库传递的日期,因为我执行了您的程序并且它返回了正确的日期。

标签: android datepicker


【解决方案1】:

使用

    date_picker_dialog.updateDate(year, month - 1, date);

当您想将现有日期更新到日期选择器时。

如果您想在创建日期选择器时设置任何日期,那么您可以覆盖 oncreatedialog

    @Override
    protected Dialog onCreateDialog(int id)
    {
        switch (id) {
            case DATE_DIALOG_ID:
                date_picker_dialog = new DatePickerDialog(this, get_date, year, month - 1, date);
                return date_picker_dialog;
        }
    }

希望对您有所帮助。如果您遇到任何问题,您可以提出来。

【讨论】:

    【解决方案2】:

    请参阅mYear_1mMonth_1mDay_1 是日期选择器中的字段。

    在调用 showDialog(DATE_DIALOG_ID_1); 日期选择器对话框之前初始化这些值。

    用法==>

    mYear_1     = 2011;
    mMonth_1    = 07;
    mDay_1      = 29;
    
    showDialog(DATE_DIALOG_ID_1);
    

    不要像这样使用c = Calendar.getInstance();

    只需将数据库中的值初始化为这些值

    【讨论】:

    • 谢谢拉姆基兰。但我只是这样做......我会解释我做了什么......来自数据库的日期正在发送,所以我将其转换为日期并将该日期设置为当前日期。现在我将获得当前日期、月份、年份日期(表示来自数据库的日期)。这就是使用 calendar.getinstance() 并且你可以在调用 show dialog() 之前在代码中看到我已经设置了这个值..也请参阅我编辑的帖子..
    • 这很简单。一旦检查我的方式,看看。我也有同样的概念。我成功了。
    • Ya ram kiran..我按照你的方式做了......现在我得到的是当我进入那个屏幕时,会出现一个对话框,其中包含 2 个选项作为“设置”的获取日期和“取消”。我必须做的事情。如果我点击设置意味着什么都没有发生,今天的日期在日期选择器中显示为默认日期..
    • 一切都是正确的,但我很想知道为什么这没有得到任何结果。检查这可能对你有用sree.cc/google/android/…
    【解决方案3】:

    DatePickerDialog 对此有一个默认构造函数。

    public DatePickerDialog(Context context,
                OnDateSetListener callBack,
                int year,
                int monthOfYear,
                int dayOfMonth) {
    
        }
    

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 2021-03-14
      • 2011-10-02
      • 2011-04-19
      • 2013-08-22
      • 1970-01-01
      • 2016-03-31
      • 2014-08-06
      • 1970-01-01
      相关资源
      最近更新 更多