2016-11-25 13 views
8

başka Özgül tarihiDevre Dışı Pazar ve ben android tarih seçici belirli aylarda sundays ve belirli bir tarih devre dışı istediğiniz

kullandığım Datepicker android datepicker geçerli:

Calendar calendar = Calendar.getInstance(); 
calendar.add(Calendar.MONTH, 1); 
calendar.setMinimalDaysInFirstWeek(27); 
// calendar.add(Calendar.DAY_OF_MONTH, 1); 
//calendar.set(2016,11,23); 
// new DatePickerDialog(LoginSuccess.this, listener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); 
DatePickerDialog dpDialog = new DatePickerDialog(LoginSuccess.this, listener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); 
// dpDialog.updateDate(2016,11,23); 

DatePicker datePicker = dpDialog.getDatePicker(); 
//datePicker.updateDate(2016,11,23); 
// Date newDate = calendar.getTime(); 
//dpDialog.getDatePicker().setMinDate(newDate.getTime()); 
//datePicker.init(); 

if (calendar.get(Calendar.DAY_OF_MONTH)==Calendar.SUNDAY) { 
    // dpDialog.setTitle("Sorry Sundays wont be accepted"); 
    // dpDialog.setMessage("not selected"); 
    // dpDialog.show(); 
    //datePicker.setBackgroundColor(000000); 
    Color.parseColor("#000000"); 
} 
else { 
    long now = System.currentTimeMillis(); 

    datePicker.setFirstDayOfWeek(Calendar.MONDAY); 
    datePicker.setMinDate(now + (1000 * 60 * 60 * 24 * 1)); 
    datePicker.setMaxDate(calendar.getTimeInMillis()); 
    dpDialog.show(); 
} 

public DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.add(Calendar.MONTH, 1); 

     //calendar.set(2016,11,23); 
     display.setText("Selected Date:" + (dayOfMonth) + "/" + (monthOfYear + 1) + "/" + year); 
      Button ok = (Button) findViewById(R.id.confirm); 
      ok.setOnClickListener((v) -> { 
       Intent intent = new Intent(LoginSuccess.this, Confirm.class); 
       intent.putExtra("Date", dayOfMonth + "/" + (monthOfYear + 1) + "/" + year); 
       intent.putExtra("name", (String) spinnerOsversions.getSelectedItem()); 
       intent.putExtra("email4", email3.toString()); 
       intent.putExtra("bikeno4", bikeno3.toString()); 
       intent.putExtra("fname", fname.toString()); 
       //intent.putExtras(b); 
       startActivity(intent); 
       finish(); 
      }); 
    } 

SetMinDate ve setMaxdate Mükemmel çalışıyor ama Sadece pazar günleri ve belirli günleri devre dışı bırakmak istiyorum. Sen değerlerini Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma ve Cumartesi almak Pazar kullanımını DAY_OF_WEEK eşleştirme için calendar.get(Calendar.DAY_OF_MONTH) kullandığınız

+0

Bunun yardımcı olup olmadığını görün. https://stackoverflow.com/questions/34727244/how-to-disable-certain-dates-in-the-android-date-picker-dialog/34730506#34730506. Bu özel bir tarih seçicisi kullanır - https://github.com/wdullaer/MaterialDateTimePicker – vsoni

cevap

2

Varsayılan DatePickerDialog ile bu mümkün değil. MaterialDateTimePicker’u kontrol etmek isteyebilirsiniz.

com.wdullaer.materialdatetimepicker.date.DatePickerDialog'da public void setSelectableDays(Calendar[] selectableDays) yöntemine sahipsiniz.

2

if (calendar.get(Calendar.DAY_OF_WEEK).equals(Calendar.SUNDAY)) { 
    // dpDialog.setTitle("Sorry Sundays wont be accepted"); 
    // dpDialog.setMessage("not selected"); 
    // dpDialog.show(); 
    //datePicker.setBackgroundColor(000000); 
    Color.parseColor("#000000"); 
} 
+0

Bu, örnek kodda bir if deyimi, ancak tarihçerde Pazar günleri gerçekten devre dışı bırakmaz/kullanıcıların bir pazar seçmesini engeller. – BooleanCheese

İlgili konular