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

데이트피커 질문입니다..

0 추천

데이트피커 다이얼로그를 열때

지정날짜 (예: 2016년 04월 29일)로 고정되어 열고싶은데..

처음 1회열때는 지정한날짜로 제대로뜹니다..

두번째부터는 제가 지정한날짜가아니라 데이트피커 선택한 날짜로 뜨네요..

지정한날짜로만 뜨게할수있는방법이없을까요..??

 

  // 날짜
    private void updateDisplay() {
        // TODO Auto-generated method stub
        if (mMonth1 < 9 && mDay1 < 10) {
            date1.setText(new StringBuilder().append(mYear1).append("-")
                    .append("0").append(mMonth1 + 1).append("-").append("0")
                    .append(mDay1));

        } else if (mMonth1 < 9 && mDay1 >= 10) {
            date1.setText(new StringBuilder().append(mYear1).append("-")
                    .append("0").append(mMonth1 + 1).append("-").append(mDay1));

        } else if (mMonth1 >= 9 && mDay1 < 10) {
            date1.setText(new StringBuilder().append(mYear1).append("-")
                    .append(mMonth1 + 1).append("-").append("0").append(mDay1));
        } else {
            date1.setText(new StringBuilder().append(mYear1).append("-")
                    .append(mMonth1 + 1).append("-").append(mDay1));

        }
    }

    // 날짜
    private void updateDisplay1() {
        // TODO Auto-generated method stub
        if (mMonth2 < 9 && mDay2 < 10) {
            date2.setText(new StringBuilder().append(mYear2).append("-")
                    .append("0").append(mMonth2 + 1).append("-").append("0")
                    .append(mDay2));

        } else if (mMonth2 < 9 && mDay2 >= 10) {
            date2.setText(new StringBuilder().append(mYear2).append("-")
                    .append("0").append(mMonth2 + 1).append("-").append(mDay2));

        } else if (mMonth2 >= 9 && mDay2 < 10) {
            date2.setText(new StringBuilder().append(mYear2).append("-")
                    .append(mMonth2 + 1).append("-").append("0").append(mDay2));
        } else {
            date2.setText(new StringBuilder().append(mYear2).append("-")
                    .append(mMonth2 + 1).append("-").append(mDay2));

        }
    }

    // 날짜
    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            // TODO Auto-generated method stub


                mYear1 = year;
                mMonth1 = monthOfYear;
                mDay1 = dayOfMonth;
                SharedPreferences.Editor editor = pref.edit();
                editor.putString("year2", Integer.toString(mYear1));
                editor.putString("monthOfYear1", Integer.toString(monthOfYear));
                editor.putString("dayOfMonth1", Integer.toString(dayOfMonth));
                editor.commit();



            updateDisplay();

        }
    };

    // 날짜
    private DatePickerDialog.OnDateSetListener mDateSetListener1 = new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {

            mYear2 = year;
            mMonth2 = monthOfYear;
            mDay2 = dayOfMonth;
            SharedPreferences.Editor editor = pref.edit();
            editor.putString("year3", Integer.toString(mYear2));
            editor.putString("monthOfYear2", Integer.toString(monthOfYear));
            editor.putString("dayOfMonth2", Integer.toString(dayOfMonth));
            editor.commit();

            updateDisplay1();

        }

    };

    // 날짜
    @Override
    protected Dialog onCreateDialog(int id) {

        switch (id) {
            case DATE_DIALOG_ID:
                if (pref.getString("year2", "") != "") {

                    return new DatePickerDialog(this, mDateSetListener,
                            Integer.parseInt(pref.getString("year2", "")),
                            Integer.parseInt(pref.getString("monthOfYear1", "")),
                            Integer.parseInt(pref.getString("dayOfMonth1", "")));
                }
                else {
                    return new DatePickerDialog(this, mDateSetListener, mYear1,
                            mMonth1, mDay1);
                }
            case DATE1_DIALOG_ID:
                if (pref.getString("year3", "") != "") {
                    return new DatePickerDialog(this, mDateSetListener1,
                            Integer.parseInt(pref.getString("year3", "")),
                            Integer.parseInt(pref.getString("monthOfYear2", "")),
                            Integer.parseInt(pref.getString("dayOfMonth2", "")));

                }

                else {
                    return new DatePickerDialog(this, mDateSetListener1, mYear2,
                            mMonth2, mDay2);
                }
        }
        return null;
    }

 

아잉훗 (570 포인트) 님이 2016년 4월 29일 질문

1개의 답변

0 추천
선택한 날짜로 뜨게 코드를 만들었으니 그렇게 동작하는 것입니다.

항상 지정한 날짜로 뜨게 코드를 바꾸세요.
익명사용자 님이 2016년 4월 30일 답변
...