2016-10-06 8 views
0

私はこのようなDatePickerを実装しました。DatePickerのAndroid Spinner

date picker

問題は、私は12月から1月にスピナーに行くとき、それは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

私はあなたの質問から理解して何からあなたがで年を変更する場合にのみ、それは1で年間増加します年をクリックします。クリックスピナーをクリックするだけで月が変わります。あなたの質問を理解していないかもしれません。年を1年増やすには、このc.add(Calendar.YEAR、1)を使用してください。 –

+0

c.add(Calendar.Date、1)最初に利用可能な選択可能な日付を、現在の日付から1日にしたいからです。 c .add(Calendar.Year、1)は、ユーザが次の年になる可能性のある最小の選択可能な日付を開始します –

+0

たとえば、スピナーを12月31日に変更したとき、12月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