2016-01-11 4 views
7

Я использую по умолчанию Android DatePickerDialog который содержит android.widget.DatePicker.Как отключить определенные даты в диалоговом окне «Выбор даты в Android»?

Кто-нибудь знает, как отключить или сделать определенные даты не поддающимися выбору?

Я знаю DatePicker позволяет setMinDate() и setMaxDate(), но это не позволяет отключить определенные даты посередине.

например. на этой картинке, чтобы отключить дата 18, 26 и т.д.:

enter image description here

ответ

2

Это не встроенный в поведении - вы должны использовать палитру дат.

+0

Можете ли вы предложить его? –

+2

[Эта библиотека] (https://github.com/wdullaer/MaterialDateTimePicker), по-видимому, имеет возможность устанавливать только определенные даты как приемлемые. – ianhanniballake

+0

Также это можно сделать - https://github.com/square/android-times-square. Попробуйте также календарь, который вы предложили. –

1

У меня есть метод, используя пользовательские datepicker. Сначала нам нужно взять дату в виде строки, а затем преобразовать ее в объект даты, а затем преобразовать дату в объект календаря. Наконец, используя setDisabledDays (calenderobj). Мы можем отключить его. Код выглядит следующим образом.

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

Могу ли я узнать, что делает этот объект dpd? – androidOnHigh

+0

dpd.setDisabledDays (disabledDays1); В этой строке вы устанавливаете для инвалидов значение datepicker. что dpd является объектом пользовательского датпикера – Bharath

 Смежные вопросы

  • Нет связанных вопросов^_^