2월, 2026의 게시물 표시

Android How to use EditTextPreference by not string types

이미지
사용 언어: Kotlin 2.3.0 사용 버전: Android Studio Otter 3 Feature Drop | 2025.2.3 안드로이드 How to use EditTextPreference by not string types를 알아보겠습니다. EditTextPreference(에딧 텍스트 프레퍼런스)는 SharedPreferene(셰어드 프레퍼런스)의 값을 보여주고 수정할 수 있게 해줍니다. 하지만, 하나의 문제가 있는데요. SharedPreference의 다양한 Type(타입)을 전부 사용할 수 없다는 점입니다. String(문자열)으로만 받으며, 다른 Type을 넣을 시 타입 변환 오류를 반환하며 종료됩니다. 그럼 우리는 SharedPreference에 Int(인트), Long(롱), Float(플롯) 형을 String으로 저장해야 하는 것일까요? 그럼 조금 불편할 것 같네요. 해결책으로는 EditTextPreference를 우리 입맛에 맞게 Custom(커스텀) 하는 방법이 있습니다. 아무 Kotlin 파일이나 만들어줍니다. 저는 이름을 CustomEditTextPreference라고 지었습니다. EditIntPreference를 만들어 준 다음, EditTextPreference를 상속받습니다. 그리고 EditTextPreference가 가지고 있는 모든 생성자의 경우를 작성해 줍니다. 그리고 하단에 getPersistedString과 persistString을 아래와 같이 override(오버라이드) 합니다. 33번 줄은 EditTextPreference에서 String을 가져올 때, getPersistedString이 호출이 되는데, 우리는 Int형을 사용하므로 getPersistedInt로 치환해서 사용합니다. 39번째 줄은 EditTextPreference가 업데이트될 때의 행위를 정합니다. xml에 다음과 같이 사용할 수 있습니다. 원래 EditTextPreference는 자동으로 SharedPreference의 값을 최신화하지만, 우린...