Android Studio
[Android Studio] 유저에게 날짜 / 시간 정보 입력받기 DatePickerDialog(), TimePickerDialog() + 받아올 때 문자열 가공
dong_su
2024. 1. 4. 16:10
버튼을 클릭하면 DatePickerDialog 객체를 생성 후 실행하는 코드
btnDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerDialog dialog = new DatePickerDialog(
AddActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
// 월은 +1 해줘야 한다. index로 세기 때문
month += 1;
// 월이나 일은 한자리면 왼쪽에 0 붙여야 한다.
String strMonth;
if (month < 10){
strMonth = "0" + month;
} else {
strMonth = "" + month;
}
String strDay;
if (dayOfMonth < 10){
strDay = "0" + dayOfMonth;
} else {
strDay = "" + dayOfMonth;
}
String date = year + "-" + strMonth + "-" + strDay;
btnDate.setText(date);
}
},
Calendar.getInstance().get(Calendar.YEAR), // 시작날짜, 원하는 날짜로 설정 가능
Calendar.getInstance().get(Calendar.MONTH),
Calendar.getInstance().get(Calendar.DAY_OF_MONTH)
);
dialog.show();
}
});
Month는 +1 해줘야 한다. index로 세기 때문에 0~11까지만 있기 때문.
버튼을 클릭하면 TimePickerDialog객체를 생성 후 실행하는 코드
btnTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerDialog dialog = new TimePickerDialog(
AddActivity.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String strHour;
if (hourOfDay < 10){
strHour = "0" + hourOfDay;
} else {
strHour = "" + hourOfDay;
}
String strMinute;
if (minute < 10){
strMinute = "0" + minute;
} else {
strMinute = "" + minute;
}
String time = strHour + ":" + strMinute;
btnTime.setText(time);
}
},
Calendar.getInstance().get(Calendar.HOUR_OF_DAY),
Calendar.getInstance().get(Calendar.MINUTE),
true
);
dialog.show();
}
});
onDateSet(), onTimeSet() 두 함수 모두 10보다 작을 때 1자리로 나오기 때문에 if문으로 두 자리로 만들어줘야 한다.
+ 받아올 때
Memo memo = memoArrayList.get(position);
holder.txtTitle.setText(memo.title);
// 날짜는 ISO 포맷으로 오기 때문에 가공해서 화면에 표시할 것이다.
String date = memo.date.replace("T", " ").substring(0, 16);
holder.txtDate.setText(date);
holder.txtContent.setText(memo.content);