2016-01-11 15 views
7

android.widget.DatePicker numaralı varsayılan Android DatePickerDialog kullanıyorum.Android Date Picker iletişim kutusunda belirli tarihler nasıl devre dışı bırakılır?

Belirli tarihlerin nasıl geçersiz kılınacağını veya belirli tarihlerin nasıl yapıldığını bilmiyor mu?

Biliyorum DatePickersetMinDate() ve setMaxDate() izin verir, ancak ortadaki belirli tarihleri ​​devre dışı bırakmasına izin vermez.

örn. Bu resme, tarih 18, 26 vb devre dışı bırakmak istiyorum: davranış inşa edilmez

enter image description here

cevap

2

- Özel bir tarih seçiciyi kullanın gerekir.

+0

Bir önerebilir misiniz? –

+2

[Bu kitaplık] (https://github.com/wdullaer/MaterialDateTimePicker) yalnızca belirli tarihleri ​​kabul edilebilir olarak belirleme özelliğine sahip gibi görünüyor. – ianhanniballake

+0

Ayrıca bunu yapabilirsiniz - https://github.com/square/android-times-square. Ayrıca önerdiğiniz takvimi de deneyecek. –

1

Özel tarih seçiciyi kullanarak bir yöntem aldım. İlk olarak tarihi bir dize olarak almalı ve sonra onu tarih nesnesine dönüştürmeli ve sonra tarih takvim nesnesine dönüştürülmelidir. Sonunda setDisabledDays (calenderobj) kullanarak. Devre dışı bırakabiliriz. Kod aşağıdaki gibidir.

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
       String a = "26-07-2017"; 
       java.util.Date date = null; 
       try { 
        date = sdf.parse(a); 
        MainActivity obj = new MainActivity(); 
        calendar = obj.dateToCalendar(date); 
        System.out.println(calendar.getTime()); 
       } catch (ParseException e) { 
        e.printStackTrace(); 
       } 

       List<Calendar> dates = new ArrayList<>(); 
       dates.add(calendar); 
       Calendar[] disabledDays1 = dates.toArray(new Calendar[dates.size()]); 
       dpd.setDisabledDays(disabledDays1); 
       } 


    private Calendar dateToCalendar(Date date) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTime(date); 
     return calendar; 
    } 
+0

Bu dpd nesnesinin ne olduğunu biliyor olabilir miyim? – androidOnHigh

+0

dpd.setDisabledDays (disabledDays1); Bu satırda, tarih seçicilere devre dışı bırakılanları ayarlıyorsunuz. Bu dpd özel bir tarihçinin bir nesnesidir – Bharath