亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Android的DatePickerDialog上設置限制?

在Android的DatePickerDialog上設置限制?

素胚勾勒不出你 2019-12-02 10:51:04
如何限制DatePickerDialog選擇過去2-12年或當前日期0-2年的日期?我有活動的DatePickerDialog,用于獲取兒童和嬰兒的出生日期。兒童年齡為(2-12歲),嬰兒年齡為(0-2歲)。如果我通過1,則年齡限制應為(2-12歲),如果我通過2,則年齡限制應為(0-2歲)。我該怎么做才能在日歷中獲得此功能?我的日歷代碼是:date = new DatePickerDialog.OnDateSetListener() {            @Override            public void onDateSet(DatePicker view, int year, int monthOfYear,                    int dayOfMonth) {                // TODO Auto-generated method stub                myCalendar.set(Calendar.YEAR, year);                myCalendar.set(Calendar.MONTH, monthOfYear);                myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);                String myFormat = "dd/MM/yy"; //In which you need put here                SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);                dateofBirth.setText(sdf.format(myCalendar.getTime()));            }        };dateofBirth.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                showDialog(DATE_DIALOG_ID);            }        });public Dialog onCreateDialog(int id) {    final Calendar now = Calendar.getInstance();    switch (id) {    case DATE_DIALOG_ID:        // set date picker as current date        DatePickerDialog _date =   new DatePickerDialog(this, date,myCalendar                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),                myCalendar.get(Calendar.DAY_OF_MONTH)){
查看完整描述

3 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

所有其他答案似乎都令人費解,所以我只想指出一個明顯的問題:您可以通過(簡單地調用)DatePicker從a 獲取基礎,并使用以下方法設置其邊界:DatePickerDialoggetDatePicker()

  • setMinDate(long minDate)

  • setMaxDate(long maxDate)

其中,自變量是默認時區中自1970年1月1日00:00:00以來的通常毫秒數。當然,您仍然必須計算這些值,但這對于Calendar該類而言應該是微不足道的:只需獲取當前日期并加上或減去x年份即可。

更細心的讀者會注意到,直到API級別11為止,上述設置器才可用。如果您僅針對該(或較新的)平臺,則可以使用。如果您還想支持姜餅設備(Android 2.3 / API級別9+),則可以改用backport版本DatePicker。


查看完整回答
反對 回復 2019-12-02
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

由于我正在游覽且無法訪問我的PC,因此我無法為您提供工作代碼。但是我可以給您一種實現目標的方法(或者我認為)。


我不確定這是否會完美運行,但是值得嘗試的任何方式。


請嘗試此代碼并通知我。


“ DatepickerType”是該類的Integer公共成員變量。


private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {


    // when dialog box is closed, below method will be called.

    public void onDateSet(DatePicker view, int selectedYear,

            int selectedMonth, int selectedDay) {

        int y = Calendar.getInstance().get(Calendar.YEAR);

        switch(DatepickerType){

        case 1:

            if(selectedYear>(y-2)){

                //Add message if you want

                selectedYear = y-2;

            }

                else if(selectedYear<(y-12)) {

                //Add msg if u want

                    selectedYear = y-12;

            }


        case 2:

            if(selectedYear>(y)){

                //Add message if you want

                selectedYear = y;

            }

                else if(selectedYear<(y-2)) {

                //Add msg if u want

                    selectedYear = y-2;

            }

        }


        String year1 = String.valueOf(selectedYear);

        String month1 = String.valueOf(selectedMonth+1);

        String day1 = String.valueOf(selectedDay);

        //do what you need

        setLastStatus();


    }

};


查看完整回答
反對 回復 2019-12-02
  • 3 回答
  • 0 關注
  • 704 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號