programing

Android-OnDateChangedListener-어떻게 설정합니까?

nasanasas 2021. 1. 5. 08:09
반응형

Android-OnDateChangedListener-어떻게 설정합니까?


Android에는 DatePicker.OnDateChangedListener 라는 이벤트 리스너가 있습니다. 다음과 같이 DatePicker보기의 날짜 변경 리스너를 설정하려고합니다.

DatePicker dp = new DatePicker(getContext());
dp.setOnDateChangedListener(this); 
//where this is my activity extends DatePicker.OnDateChangedListener

하지만 그거 알아? 날짜 선택기에는 setOnDateChangedListener 라는 메소드가 없습니다 .

내 질문은 :

  1. 그렇다면 Android에서 날짜 변경 리스너를 어떻게 설정합니까?
  2. 날짜 변경 리스너를 설정할 수없는 경우이 이벤트의 목적은 무엇입니까?

모든 문서 / 튜토리얼이 매우 유용합니다.


를 만든 후에 DatePicker는 처음에 표시 할 날짜로 초기화해야합니다. 이것이 리스너를 추가 할 수있는 지점 입니다.

을 참조하십시오 DatePicker.init(int, int, int, OnDateChangedListener).


가장 좋은 방법은

        DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {

                @Override
                public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
                    Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);

                }
            });

이보기는 실제로 네 가지보기의 조합이며 다음과 같습니다.

세 스피너

하나의 CalendarView

OnDateChangeListener에서 init 메소드에 전달한 객체는 단순히 포함 된 CalendarView로 전달되며, 좋은 오래된 CalendarView에 setOnDateChangeListener 메소드가 있다는 것을 알고 있다고 생각합니다. .... ..

DatePicker 클래스에는 getCalendarView라는 메서드가 있으며 포함 된 CalendarView를 손에 넣으려면 호출 할 수있는 메서드입니다.

포함 된 CalendarView에 손을 대면 말할 필요도없이 setOnDateChangeListener를 호출 할 수 있습니다.


이 같은:

DatePicker myDatePicker = (DatePicker) findViewById(R.id.my_date_picker);
myDatePicker.getCalendarView().setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
    @Override
    public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
        Log.d("tag", "finally found the listener, the date is: year " + year + ", month "  + month + ", dayOfMonth " + dayOfMonth);
    }
});

개체를 호출 init()하십시오DatePicker .

참조 URL : https://stackoverflow.com/questions/2051153/android-ondatechangedlistener-how-do-you-set-this

반응형