2016-01-11 20 views
7

Ich verwende Standard Android DatePickerDialog, die android.widget.DatePicker enthält.Wie können bestimmte Daten im Dialogfeld "Android Date Picker" deaktiviert werden?

Kann jemand bestimmte Daten deaktivieren oder bestimmte Daten nicht auswählbar machen?

Ich weiß, DatePicker ermöglicht, setMinDate() und setMaxDate(), aber es nicht erlaubt, bestimmte Daten in der Mitte zu deaktivieren.

z.B. auf diesem Bild 18 Datum deaktivieren möchte, 26, etc:

enter image description here

Antwort

2

das kein Verhalten gebaut - Sie einen benutzerdefiniertes Datum verwenden Picker haben würden.

+0

Können Sie einen vorschlagen? –

+2

[Diese Bibliothek] (https://github.com/wdullaer/MaterialDateTimePicker) scheint die Möglichkeit zu haben, nur bestimmte Daten als akzeptabel zu definieren. – ianhanniballake

+0

Auch dies kann man tun - https://github.com/square/android-times-square. Werde auch den von dir vorgeschlagenen Kalender ausprobieren. –

1

Ich habe eine Methode mit benutzerdefinierten Datumsauswahl. Zuerst müssen wir das Datum als String nehmen und es dann in ein Datumsobjekt umwandeln, und dann wird das Datum in ein Kalenderobjekt umgewandelt. Endlich mit setDisabledDays (kalenderobj). Wir können es deaktivieren. Der Code ist wie folgt.

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

Darf ich wissen, was dieses dpd-Objekt? – androidOnHigh

+0

dpd.setDisabledDays (disabledDays1); In dieser Zeile setzen Sie die Deaktivierungen auf Datumsauswahl. dass dpd ein Objekt des benutzerdefinierten Datumsspeichers ist – Bharath