14

Is there any way to disable writing inside a date picker using keyboard? As I just want the plus and minus signs to be used to set the date. thanks in advance.

Veger
  • 37,240
  • 11
  • 105
  • 116
Android Developer
  • 1,039
  • 1
  • 9
  • 33
  • 4
    Why are you planning on breaking default user interaction? Expected behavior does not work anymore and it will confuse and/or annoy your users... – Veger Nov 20 '12 at 10:58
  • Because I have constrains on the input date from the user – Android Developer Nov 20 '12 at 10:59
  • So check if the input date is conform your constraints after the user choose a new date, and notify the user when it is not... – Veger Nov 20 '12 at 11:00

4 Answers4

24
myDatePicker.setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);
Tkingovr
  • 1,390
  • 16
  • 33
5
dp.setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);

is the best way to do so.

You can check this also

Focusable EditText inside ListView

Community
  • 1
  • 1
Rand Halim
  • 87
  • 1
  • 8
3
Calendar start = Calendar.getInstance();

            int Year = DatePicker.getYear();
            int Month = DatePicker.getMonth();
            int Day = DatePicker.getDayOfMonth();

            start.set(Year, Month, Day);
    //      DayDatePicker.setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);

            Date periodDate = start.getTime();
            int daysToAdd = 280;
            Calendar cal = Calendar.getInstance();

cal.add(Calendar.DAY_OF_MONTH,daysToAdd );
            System.err.println("-----" +cal.getTime());
            int AfterCalc = cal.getTime().getYear()+1900;
            System.err.println("-----" + AfterCalc);
            int AfterCalc2 = cal.getTime().getMonth();
            System.err.println("----" + AfterCalc2);
0

Best option for stopping manual editing in DatePickerDialog items is using set the descendantFocusability . You can add it in code or in your dialog style file.

Here is the implementation using style