2017-08-16 4 views
0

私を助けてください。私のDatePickerDialogが '1900年'に設定されていることを示すとき。私は過去の日付を制限する方法しか知りませんが、過去の年を制限する方法はわかりません。 私は何をしたいですかAndroidのDatePickerDialogで現在の年を設定するにはどうすればよいですか?

元です。ユーザは、チェック/チェック日付を入力したいが、過去の日付のみを現在の年に許可する。

public void ChequeDate(View view) { 
    DatePickerDialog dpd = new DatePickerDialog(PaymentHeader.this, 
      new DatePickerDialog.OnDateSetListener() { 
       @Override 
       public void onDateSet(DatePicker view, int year, 
             int monthOfYear, int dayOfMonth) { 
        if (year < mYear) 
         view.updateDate(mYear, mMonth, mDay); 

        if (monthOfYear < mMonth && year == mYear) 
         view.updateDate(mYear, mMonth, mDay); 

        if (dayOfMonth < mDay && year == mYear && monthOfYear == mMonth) 
         view.updateDate(mYear, mMonth, mDay); 

        if (monthOfYear < 9) { 
         if (dayOfMonth < 10) { 
          ChequeDateET.setText(year + "-0" 
            + (monthOfYear + 1) + "-0" + dayOfMonth); 
         } else { 
          ChequeDateET.setText(year + "-0" 
            + (monthOfYear + 1) + "-" + dayOfMonth); 
         } 
        } else { 
         if (dayOfMonth < 10) { 
          ChequeDateET.setText(year + "-" 
            + (monthOfYear + 1) + "-0" + dayOfMonth); 
         } else { 
          ChequeDateET.setText(year + "-" 
            + (monthOfYear + 1) + "-" + dayOfMonth); 
         } 
        } 
       } 
      }, mYear, mMonth, mDay); 
    //dpd.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 
    dpd.show(); 
} 

説明が必要な場合は、お尋ねください。助けてくれてありがとう。

答えて

0

current calendar instanceを取得する必要があります。このため、year, month and dateオブジェクトを引数としてDatePickerDialogメソッドに渡して、setMinDateメソッドを有効にする必要があります。 今すぐ次のコードを確認してください

public void ChequeDate(View view) { 
    Calendar calendar = Calendar.getInstance(); 
    int date = calendar.get(Calendar.DATE); 
    int month = calendar.get(Calendar.MONTH); 
    int year = calendar.get(Calendar.YEAR); 
    DatePickerDialog dpd = new DatePickerDialog(PaymentHeader.this, 
      new DatePickerDialog.OnDateSetListener() { 
       @Override 
       public void onDateSet(DatePicker view, int year, 
             int monthOfYear, int dayOfMonth) { 
        if (year < mYear) 
         view.updateDate(mYear, mMonth, mDay); 

        if (monthOfYear < mMonth && year == mYear) 
         view.updateDate(mYear, mMonth, mDay); 

        if (dayOfMonth < mDay && year == mYear && monthOfYear == mMonth) 
         view.updateDate(mYear, mMonth, mDay); 

        if (monthOfYear < 9) { 
         if (dayOfMonth < 10) { 
          ChequeDateET.setText(year + "-0" 
            + (monthOfYear + 1) + "-0" + dayOfMonth); 
         } else { 
          ChequeDateET.setText(year + "-0" 
            + (monthOfYear + 1) + "-" + dayOfMonth); 
         } 
        } else { 
         if (dayOfMonth < 10) { 
          ChequeDateET.setText(year + "-" 
            + (monthOfYear + 1) + "-0" + dayOfMonth); 
         } else { 
          ChequeDateET.setText(year + "-" 
            + (monthOfYear + 1) + "-" + dayOfMonth); 
         } 
        } 
       } 
      }, year, month, date); 
    dpd.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 
    dpd.show(); 
} 
関連する問題