2012-08-13 190 views
4

在我的应用程序中,我使用日期选择器为用户选择日期。如果用户选择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; 
        } 
      }; 
+0

检查从你的数据库中传出什么日期,因为我执行了你的程序并且它返回了我正确的日期。 – Android 2012-08-13 05:35:22

回答

0

看到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();这样。只要你想更新现有的日期为日期选取器

只是intialize值从数据库到这些值

+0

谢谢拉姆基兰。但我只是这样做...我会解释我做了什么..来自数据库的日期是srting,所以我把它转换成日期并将该日期设置为当前日期。现在我将获得当前的日期,月份,年份日期(意味着从数据库中的日期)。这就是使用calendar.getinstance()和你可以在代码中看到调用show dialog()之前我已经设置了这个值..见我编辑的帖子也.. – 2012-08-13 05:14:12

+0

这是简单的方法没有。一旦检查我的方式,看看。我也有同样的概念。我获得了成功。 – 2012-08-13 05:18:39

+0

Ya ram kiran ..我用你的方式...现在我得到的是当我要去那个屏幕时,一个对话框出现与2 optoins作为“设置”和“取消”提取日期。在那我必须做.IF我点击设置意味着什么都没有发生今天的日期显示为日期选择器中的默认日期.. – 2012-08-13 05:23:52

4

使用

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

希望它会帮助你。如果你遇到任何问题,你可以问。

+0

它正在工作还是其他您遇到的问题。 – 2012-08-13 08:30:28

0

DatePickerDialog有一个默认的构造函数。

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

    }