2012-08-13 283 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) { 

    } 
相關問題