마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

한 화면에 DatePicker 2개 사용 가능한가요..?

0 추천

초보개발자라.. 한 화면에 시작일 , 종료일 DatePicker사용해서 넣으려하는데 

시작일은 넣었는데...종료일을 어떻게 넣어야될지모르겠어여 진짜 무식하게 시작일에 넣었던소스코드 하나씩 더 복사해서했는데..역시나안돼서... 일단 제가 시작일만 넣은 소스코드 첨부할게요! 도와주세요 ㅠㅠㅠㅠㅠ

//// Date Picker : 시작 ////
        //(1) main.xml의 레이아수에 배치된 날짜 입력을 위한 TextView 인식
        mDateDisplay = (TextView) findViewById(R.id.pickDate);
        mDateDisplay2 = (TextView) findViewById(R.id.pickDate2);
        //(2) 인식된 TextView 에 click listener 추가
        mDateDisplay.setOnClickListener(new View.OnClickListener() {
            @Override //(5)클릭되면 실행
            public void onClick(View v) {
                showDialog(DATE_DIALOG_ID);  //(6)날짜 설정을 위한 다이얼로그 출력
            }
        });

        // (3) 현재 날짜 인식
        final Calendar c = Calendar.getInstance();
        mYear=c.get(Calendar.YEAR);
        mMonth=c.get(Calendar.MONTH);
        mDay=c.get(Calendar.DAY_OF_MONTH);

        // (4) 인식된 날짜를 출력
        updateDisplay();

        //// Date Picker : 끝 ////

    }


    // (7) 다이어로그 출력시 DatePicker 다이어로그 출력
    @Override
    protected Dialog onCreateDialog(int id) {
        switch(id){
            case DATE_DIALOG_ID : return new DatePickerDialog(this,mDateSetListener,mYear,mMonth,mDay);
        }

        return null;
    }


    // 설정된 날짜를 TextView에 출력
    private void updateDisplay() {
        // main.xml의 레이아웃에 배치된 날짜 입력 TextView에 인식된 날짜 출력
        mDateDisplay.setText(
                new StringBuilder()
                        //월은 시스템에서 0~11로 인식하기 때문에 1을 더해줌
                        .append(mYear).append("-")
                        .append(mMonth + 1).append("-")
                        .append(mDay).append(" ")
        );

    }

    // (8) 다이어로그에 있는 날짜를 설정(set)하면 실행됨
    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            mYear = year;
            mMonth=monthOfYear;
            mDay=dayOfMonth;
            // 사용자가 지정한 날짜를 출력
            updateDisplay();

        }
    };
뚜루루루둡 (1,130 포인트) 님이 2016년 10월 16일 질문

1개의 답변

0 추천
 
채택된 답변
복붙해도 무관합니다 대신 늘어난 만큼 관련 변수를 하나씩 더 늘려야겠죠
aucd29 (218,390 포인트) 님이 2016년 10월 17일 답변
뚜루루루둡님이 2016년 11월 1일 채택됨
답변감사합니다! 초기 변수값을 다르게 설정하고 복붙하니까 되네요!
근데 또 궁굼한게 제가 시작일/마감일 이렇게 2개인데
시작일보다 마감일이 더 앞서지않게 혹은 마감일보다 시작일이 더 늦춰지지 않게
제한을 거는 방법을 아실까요....?ㅠㅠ
직접 코딩 하시는 수 밖에 없습니다.
date picker 의 DateChangedListener 으로 변화를 감지 하세요
...