구글 개발자 사이트를 보니 ICS부터는 showDialog를 웬만하면 이용하지 말라고 합니다.

( showDialog(상수) 로 달력을 팝업으로 띄우면 처음 클릭을 제외하고는 그 이후부터 2번 클릭해야 달력 팝업이 뜹니다.

혹시 이에 대한 해결책을 알려주시면 더 감사하겠습니다.)



그래서 DialogFragment를 확장해서 만들었는데.. (그냥 개발자 사이트에 있는거 썻습니다.)


 private class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
    	
    	@Override
    	public Dialog onCreateDialog(Bundle savedInstanceState) {
          Calendar c = Calendar.getInstance();
          int cyear = c.get(Calendar.YEAR);
          int cmonth = c.get(Calendar.MONTH);
          int cday = c.get(Calendar.DAY_OF_MONTH);
          
          return new DatePickerDialog(getActivity(), this, cyear, cmonth, cday);
			
    	}
		@Override
		public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
			// To-Do
		}
    }



이렇게 할 경우 버튼 클릭시 달력은 잘 뜹니다만......


날짜를 10월5일로 바꾸고 설정을 누르면 날짜 설정또한 잘 됩니다.


그러나, 다시 클릭할 때 10월5일로 뜨는게 아니라 10월11일, 즉 오늘 날짜로 뜹니다.


왜 그럴까요? 간단하게 이야기하면 달력을 띄울때는 항상 오늘날짜로 설정되어 있습니다.


Calenger.getInstance() 가 달력에 설정된 날짜를 가져오는거 아닌가요?


왜 그런지 ㅁ모르겠습니다.