2016-10-06 2 views
0

Я реализовал DatePicker, как этот.Android Spinner в DatePicker

date picker

Проблема заключается в том, что когда я иду в блесны с декабря по январь она должна увеличиваться год на 1, но это не так. Как его можно изменить?

dpTake=(DatePicker) rootView.findViewById(R.id.dpTake); 
    Date dt = new Date(); 
    Calendar c = Calendar.getInstance(); 
    c.setTime(dt); 
    c.add(Calendar.DATE, 1); 
    dt = c.getTime(); 
    dpTake.setMinDate(dt.getTime()); 
+0

Из того, что я понял из вашего вопроса будет увеличиваться год от одной только тогда, когда вы меняете год щелкнув по году. нажав на месяц, вы просто меняете месяц. Может быть, я пропустил ваш вопрос. Чтобы увеличить год на год, используйте этот c.add (Calendar.YEAR, 1); –

+0

c.add (Calendar.Date, 1) Я использую, потому что я хочу, чтобы первая доступная выбранная дата была 1 день с даты. c.add (Calendar.Year, 1) запустит минимальную возможную возможную дату для пользователя в следующем году –

+0

, например, когда я сменил счетчик до 31 декабря, я вижу в календаре 31 декабря и по спину на следующий месяц я хотел бы, чтобы календарь прошел до 2017 года. Возможно ли это? –

ответ

0

Для меня, это работает отлично:

static public void main(String[] args) { 
    // this part is equiv to "get date from picker" 
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 
    Date d=null; 
    try { 
     d=df.parse("2016-12-31"); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    // this is add-ing 
    Calendar c=Calendar.getInstance(); 
    c.setTime(d); 
    c.add(Calendar.DATE, 1); 

    // this part is equiv to "set date to picker" 
    System.out.println(df.format(c.getTime())); 

    // some more tests 
    c.add(Calendar.DATE, 29); 
    System.out.println(df.format(c.getTime())); 

    c.add(Calendar.MONTH, 1); 
    System.out.println(df.format(c.getTime())); 
    } 

Результат:

2017-01-01 
2017-01-30 
2017-02-28 
Смежные вопросы