현재 datepicker 를 사용하여 날짜를 선택하고있는데요.
선택 후 확인버튼을 눌러 날짜가져오는 부분까지는 정상적으로 작동을합니다.
다만 날짜를 선택후 확인버튼이 아닌 취소버튼을 누르고
다시 datepicker창을 열면 취소하기전에 선택한 날짜가 표시됩니다..
이부분은 어떤식으로 처리해야될지... 고민하다가 도움 요청합니다..
요약:
1. datepicker 창 날짜 선택 후 확인 -> 정상작동
2. datepicker 창 날짜 선택 후 취소 , datepicker 재실행 - > 취소전 선택한 날짜 표시
소스부분 입니다.
//datepicker 호출부분
Rdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE3_DIALOG_ID);
}
});
// datepicker 생성
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE3_DIALOG_ID:
return new DatePickerDialog(this, mDateSetListener3, mYear4,
mMonth4, mDay4);
}
return null;
}
//선택날짜 업데이트
private DatePickerDialog.OnDateSetListener mDateSetListener3 = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mYear4 = year;
mMonth4 = monthOfYear;
mDay4 = dayOfMonth;
updateDisplay3();
}
};
//화면 표시
private void updateDisplay3() {
// TODO Auto-generated method stub
if (mMonth4 < 9 && mDay4 < 10) {
Rdate.setText(new StringBuilder().append(mYear4).append("-")
.append("0").append(mMonth4 + 1).append("-").append("0")
.append(mDay4));
SharedPreferences.Editor editor = pref.edit();
editor.putString("Rdate", Rdate.getText().toString());
editor.commit();
} else if (mMonth4 < 9 && mDay4 >= 10) {
Rdate.setText(new StringBuilder().append(mYear4).append("-")
.append("0").append(mMonth4 + 1).append("-").append(mDay4));
SharedPreferences.Editor editor = pref.edit();
editor.putString("Rdate", Rdate.getText().toString());
editor.commit();
} else if (mMonth4 >= 9 && mDay4 < 10) {
Rdate.setText(new StringBuilder().append(mYear4).append("-")
.append(mMonth4 + 1).append("-").append("0").append(mDay4));
SharedPreferences.Editor editor = pref.edit();
editor.putString("Rdate", Rdate.getText().toString());
editor.commit();
} else {
Rdate.setText(new StringBuilder().append(mYear4).append("-")
.append(mMonth4 + 1).append("-").append(mDay4));
SharedPreferences.Editor editor = pref.edit();
editor.putString("Rdate", Rdate.getText().toString());
editor.commit();
}
}