2015-12-09 43 views
0

嗨我想在第一次用戶打開對話框時設置日期選擇器對話框上的特定日期(從服務器)。之後,日期將被動態設置。但我無法在日期選擇器上獲得該日期。它總是顯示當前的最短日期。有沒有簡單的方法來解決這個問題?從datePicker對話框的服務器獲取特定日期android

//My date from server 

     Calendar cal = Calendar.getInstance(); 
      long l = Long.parseLong(posttime); 
        cal.setTimeInMillis(l); 
        int dmonth = cal.get(Calendar.DAY_OF_MONTH); 
        int dday = cal.get(Calendar.MONTH); 
        int dyear= cal.get(Calendar.YEAR); 
      dateTextView.setText(dday+" " + dmonth + " " +dyear); 

     //Date to be set dynamically 

     Calendar now = Calendar.getInstance(); 
     DatePickerDialog dpd = DatePickerDialog.newInstance(
        PostInfoUpdate.this, 
        now.get(Calendar.YEAR), 
        now.get(Calendar.MONTH), 
        now.get(Calendar.DAY_OF_MONTH)+1 
      ); 

     dpd.setMinDate(Calendar.getInstance()); 
       now.add(Calendar.DAY_OF_MONTH, 30); 
       dpd.setMaxDate(now); 


     //To open the dialog 
       public void show() { 
      dpd.show(getFragmentManager(), "Datepickerdialog"); 

       } 

     //To set the date 
      @Override 
     public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) { 
     String date = "You picked the following date: "+dayOfMonth+"/"+(++monthOfYear)+"/"+year; 
      dateTextView.setText(date); 
      } 

回答

0

如果你不希望當前的時間要設置不這樣做;)

 dpd.setMinDate(Calendar.getInstance()); 
      now.add(Calendar.DAY_OF_MONTH, 30); 
      dpd.setMaxDate(now); 

定義自己的「時間」(從服務器或靜態),並設置該

編輯:

@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

能否請您解釋清楚? – spykeburn

+0

http://stackoverflow.com/questions/26310750/how-to-set-a-specific-date-in-date-picker-in-android你可以使用答案1中的方法將datepicker onstart設置爲你想要的日期。我「引用」的代碼將日期設置爲當前日期(現在)。我希望這有幫助。 – Rastaman

+0

我試過這個dpd.initialize(mCallBack,dyear,dmonth,dday);我得到了我的約會,但現在我無法更改日期。 – spykeburn

0

如果要插入一個自定義的日期,當你從服務器得到了你的約會將其切分爲「年」 - 「月」 - 「天」和插入它們這個方法

public dinamicDate(int year, int month, int day){ 
    Calendar now = Calendar.getInstance(); 
       DatePickerDialog dpd = DatePickerDialog.newInstance(
         Context, 
         year, 
         month, 
         day; 
       dpd.show(getFragmentManager(), "Datepickerdialog"); 
    } 

,那麼你只需要調用它

dinamicDate(year, month, day); 
相關問題