ユーザーの生年月日を挿入するフィールドがあるアクティビティを作成しました。これを達成するために日付ピッカーを使用しました。
これは私がやっていることのソースコードです:
// onclick dob edittext open date picker dialog
        dob.setFocusableInTouchMode(false);
        dob.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //open date picker
                  showDialog(DATE_DIALOG_ID);
            }
        }); 
//======================For picking birth day==========================
    // Creating dialog
        @Override
        protected Dialog onCreateDialog(int id) {
            Calendar c = Calendar.getInstance();
            int cyear = c.get(Calendar.YEAR);
            int cmonth = c.get(Calendar.MONTH);
            int cday = c.get(Calendar.DAY_OF_MONTH);
            switch (id) {
                case DATE_DIALOG_ID:
                    return new DatePickerDialog(this, mDateSetListener, cyear, cmonth, cday);
            }
            return null;
        }
        private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
            // onDateSet method
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
//              String date_selected = String.valueOf(monthOfYear+1)+" /"
//                                    +String.valueOf(dayOfMonth)+" /"
//                                    +String.valueOf(year);
                String date_selected = String.valueOf(dayOfMonth)+" /"
                        +String.valueOf(monthOfYear+1)+" /"
                        +String.valueOf(year);
                //Toast.makeText(RegisterActivity.this, "Selected Date is ="+date_selected, Toast.LENGTH_SHORT).show();
                dob.setText(date_selected);
            }
        };
//======================For picking birth day==========================
今私がやりたいことは、日付ピッカーを特定の年に制限することです。このような:
int maxYear = c.get(Calendar.YEAR) - 15; // this year ( 2013 ) - 15 = 1998
                int maxMonth = c.get(Calendar.MONTH);
                int maxDay = c.get(Calendar.DAY_OF_MONTH);
                int minYear = maxYear-49;
                int minMonth = 0; // january
                int minDay = 25; 
上記の境界を日付ピッカーに設定するにはどうすればよいですか?
// - - - - - - - - 編集 - - - - - - - - - - - - - -
私はこのようなことをしました:
//======================For picking birth day==========================
    // Creating dialog
        @Override
        protected Dialog onCreateDialog(int id) {
            Calendar c = Calendar.getInstance();
            maxYear = c.get(Calendar.YEAR) - 15; // this year ( 2013 ) - 15 = 1998
            maxMonth = c.get(Calendar.MONTH);
            maxDay = c.get(Calendar.DAY_OF_MONTH);
            switch (id) {
                case DATE_DIALOG_ID:
                    return new DatePickerDialog(this, mDateSetListener, maxYear, maxMonth, maxDay);
            }
            return null;
        }
        DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
                int minYear = maxYear-49;
                int minMonth = 0; // january
                int minDay = 25;
            public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
                Date current = new Date(year, monthOfYear, dayOfMonth);
                Date minDate = new Date(minYear, minMonth, minDay);
                Date maxDate = new Date(maxYear, maxMonth, maxDay);
                if( current.getTime() < minDate.getTime() )
                {
                    //set to minimum date
                }else if( current.getTime() > maxDate.getTime() )
                {
                    //Set to max Date
                }
            }
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                // TODO Auto-generated method stub
                 String date_selected = String.valueOf(dayOfMonth)+" /"
                            +String.valueOf(monthOfYear+1)+" /"
                            +String.valueOf(year);
                    //Toast.makeText(RegisterActivity.this, "Selected Date is ="+date_selected, Toast.LENGTH_SHORT).show();
                    dob.setText(date_selected);
            }
        };
//======================For picking birth day==========================
これは上限を修正していますが、下限または minDate は修正されていません! 何を終わらせるべきなのですか?