2014-10-11 128 views
0

中設置日期選擇器中的特定日期我嘗試了很多,但都不起作用。如何在android

我需要我的日期選擇器日期從2014年9月1日開始。但它開始於1900年。 我設置了最低日期概念,它消失了所有過去的日期。 請大家幫幫忙。

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.daty); 


     click=(ImageView)findViewById(R.id.click); 


     hdate=(TextView)findViewById(R.id.hdate); 

     timeStamp = new SimpleDateFormat("dd/MM/yyyy").format(new Date(System.currentTimeMillis())); 


     hdate.setText(timeStamp); 


     final Calendar myCalendar = Calendar.getInstance(); 

     final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { 



      @Override 
      public void onDateSet(DatePicker view, int year, int monthOfYear, 
        int dayOfMonth) { 

          myCalendar.set(Calendar.YEAR, year); 
         myCalendar.set(Calendar.MONTH, monthOfYear); 
         myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
         click.setVisibility(View.VISIBLE); 


         updateLabel(); 

      } 
      private void updateLabel() { 
       // TODO Auto-generated method stub 

        String myFormat = "dd/MM/yyyy"; 
        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); 
        hdate.setText(sdf.format(myCalendar.getTime())); 


      } 

     }; 

     hdate.setOnClickListener(new OnClickListener() { 



      public void onClick(View v) { 

       DatePickerDialog datePickerDialog = new DatePickerDialog(Daty.this,date, myCalendar 
         .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
         myCalendar.get(Calendar.DAY_OF_MONTH)); 




       datePickerDialog.show(); 
       datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());  

      } 


     }); 


     click.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 


         Intent in=new Intent(Daty.this,Mainy.class); 
          startActivity(in); 

     } 
     }); 

    } 

} 
+0

[在的DatePicker設置自定義日期](可能重複http://stackoverflow.com/questions/8279898/setting-custom-date- – 2014-10-11 05:22:49

回答

0

您可以通過這個代碼設置:

Calendar cal=Calendar.getInstance(Locale.ENGLISH); 
datePickerDialog .init(cal.getTime().getYear()+1900, cal.getTime().getMonth(), cal.getTime().getDay(), this); 

編輯

要設置最小日期爲您DatePicker您可以通過使用設置:

datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 

將今天的日期設置爲最短日期,並禁用所有過去的日期。

注:setMinDate在API推出了11

編輯#2

您需要創建自定義DatePickerDialog爲:

class DatePickerDialog1964 extends DatePickerDialog { 
    DatePickerDialog1964(Context c) { 
    super(c, null, 2014, 1, 1); 

    @SuppressWarnings("deprecation") 
    Date min = new Date(2014-1900, 1, 1); 

    DatePicker p = getDatePicker(); 
    CalendarView cv = p.getCalendarView(); // should check for null 
    long cur = cv.getDate(); 
    int d = cv.getFirstDayOfWeek(); 
    p.setMinDate(min.getTime()); 
    cv.setDate(cur + 1000L*60*60*24*40); 
    cv.setFirstDayOfWeek((d + 1) % 7); 
    cv.setDate(cur); 
    cv.setFirstDayOfWeek(d); 
    } 
} 

要使用此:

new DatePickerDialog1964(context).show();

+0

仍然是一樣的...... – Aravind 2014-10-11 04:34:10

+0

你可以在DatePicker中設置最小日期這樣檢查我的編輯 – 2014-10-11 04:39:06

+0

謝謝,但我需要日期選擇器開始2014年1月1日起..有任何可能性 – Aravind 2014-10-11 04:51:14

0
class DatePickerDialog1964 extends DatePickerDialog { 
DatePickerDialog1964(Context c) { 
    super(c, null, 2013, 4, 21); 

    @SuppressWarnings("deprecation") 
    Date min = new Date(2013-1900, 4, 21); 

    DatePicker p = getDatePicker(); 
    CalendarView cv = p.getCalendarView(); // should check for null 
    long cur = cv.getDate(); 
    int d = cv.getFirstDayOfWeek(); 
    p.setMinDate(min.getTime()); 
    cv.setDate(cur + 1000L*60*60*24*40); 
    cv.setFirstDayOfWeek((d + 1) % 7); 
    cv.setDate(cur); 
    cv.setFirstDayOfWeek(d); 
} 

}

OR

DatePickerDialog dpDialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay); 
DatePicker datePicker = dpDialog.getDatePicker(); 

Calendar calendar = Calendar.getInstance();//get the current day 
datePicker.setMinDate(calendar.getTimeInMillis());//set the current day as the max date 
return dpDialog; 
+0

謝謝,但我需要日期選擇器開始2014年1月1日起..有任何可能性 – Aravind 2014-10-11 04:53:07

+0

是日期min = new Date(2014,1,1);設置這個 – 2014-10-11 05:00:54