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

timepicker 오전/오후 에서 AM/PM 으로 바꿀 수는 없을 까요?

0 추천

100만 다운로드 (290 포인트) 님이 2022년 7월 3일 질문

1개의 답변

0 추천

TimePicker를 문서를 살펴보니 해당 텍스트를 바꿀 수 있는 기능이 제공되지 않는 것 같아 보입니다.AM/PM 텍스트는 디바이스의 locale의 영향을 받는 부분이기 때문에 기본 제공되는 텍스트를 사용하는 것이 가장 좋습니다. 하지만 강제로 굳이 바꾸어야 한다면, 해결방법은 해당 기능을 지원하는 새로운 TimePicker 사용하시거나(Third party 또는 직접 제작), TimePikcer를 편법을 통해 TimerPicker레이아웃에 있는 AM/PM를 표히하는 뷰의 텍스트를 강제로 바꾸는 겁니다. 당연히 두번째 방법에 대한 ㅊ 코드를 올리겠지만, 딱히 권장하고 싶지는 않네요. 그리고 TimePicker는 clock mode와 spinner 모드 두가지가  API 레벨에 따라 지원이 되는데, 님이 올리신 이미지처럼, spinner 모드에 대한 코드만 올리겠습니다.  clock 모드에 대한 부분은 API레벨에 따라 테스트를 해보셔야 합니다.

TimerPicker timePicker = findViewById(R.id.timePicker);

int amPmSpinnerId = getResources().getIdentifier("amPm", "id", "android");
NumberPicker amPmSpinner = timePicker.findViewById(amPmSpinnerId)
amPmSpinner.setDisplayedValues(new String[]{"AM", "PM"});

올린 코드는 TimerPicker의 소스코드에서 spinner mode일 때 사용된 레이아웃을 찾은 다음, 거기서  AM/PM을 표시하는 뷰를 찾아 강제로 텍스틀 교체한 것입니다.  딱히 꼭 그래야만 하는 이유가 아니면기본 기능을 그대로 사용하는게 가장 좋습니다.

spark (227,830 포인트) 님이 2022년 7월 3일 답변
spark님이 2022년 7월 4일 수정
...