DatePicker.OnDateChangedListener called twice

前端 未结 9 993
误落风尘
误落风尘 2020-12-05 17:08

I\'m trying to create an app where the user selects a date from a DatePicker, and then a list is updated with some values.

My GUI looks like this:

         


        
9条回答
  •  一生所求
    2020-12-05 17:29

    Perhaps modify the listener by adding instance variables, that way you can check to see if they are different from the last time the method was called:

    final DatePickerDialog datePickerDialog = new DatePickerDialog (this, new DatePickerDialog.OnDateSetListener()
        {   
            private int year;
            private int month;
            private int day;
    
            @Override
            public void onDateSet (DatePicker view, int year, int monthOfYear, int dayOfMonth)
            {
                if (this.year == year && this.month == monthOfYear && this.day == dayOfMonth)
                    return;
    
                this.year = year;
                this.month = monthOfYear;
                this.day = dayOfMonth;
    
                calendar.set (year, month, day);
                int index = officeCalendar.indexOfKey (calendar.getTimeInMillis ());
    
                if (index > -1)
                    viewPager.setCurrentItem (index);
            }
        }, calendar.get (Calendar.YEAR), calendar.get (Calendar.MONTH), calendar.get (Calendar.DATE));
    

提交回复
热议问题