2. 단위 변환기

조준형·2024년 1월 22일
0

안드로이드

목록 보기
5/7

개요

  • 입력, 출력 단위를 선택할 수 있음
  • 입력 <-> 출력 단위를 반대로 변경할 수 있음
  • 입력창에 값을 입력하면 바로 결과창에 단위가 변환된 값이 노출

구현기능

  • cm를 m로 변환
  • 값을 입력하면, 바로 변환된 값이 노출
    • 입력값은 자연수로 한정
  • 단위를 반대로 변경
  • 단위 변환 연산
    • cm -> m (X 0.01)
    • m -> cm (X 100)

학습 목표

  • 간단한 기능을 구현하고, UI를 그릴 수 있다
    • constraintLayout을 이용하여 간단한 UI를 그릴 수 있다.
    • 키보드로 사용자가 입력한 값을 받을 수 있다.
    • 사용자의 입력값이 변경되면, 바로 변환된 값을 보여줄 수 있다.
    • 방향이 변경됐을 때, 값을 유지하는 방법
  • UI
    • ConstraintLayout
    • EditText
  • Android
    • ViewBinding
    • onSaveInstanceState

기억할 점

저번 파트에서는 findViewbyId를 통해 UI 요소들을 Kotlin 코드로 불러왔는데 이번에는 viewbinding을 사용했음.
findViewbyId를 사용하면 여러개의 xml에서 id값이 중복되는것이 있다면 오류가 발생할 수 있지만 viewbinding을 사용하면 뷰바인딩 클래스를 이용하여 xml을 inflate하기 때문에 해당하는 xml에 있는 UI요소들만 불러올 수 있어 중복으로 인한 오류를 없앨 수 있음

isNullOrEmpty는 null값이나 값을 모두 없앴을때 오류가 발생할 수 있음을 미리 방지함

화면 전환으로 인해 값이 변경될 수 있는데 onSaveInstanceState를 이용해서 값을 유지할 수 있음
onSaveInstanceState 클래스의 번들에 유지해야할 값을 저장하고 onRestoreInstanceState에서 저장한 값을 불러오는 방식

화면이 전환되면 pause, stop, destroy를 거친 후에 다시 onCreate가 호출되는데 이때 데이터를 저장해놓지 않으면 화면 전환시 값을 유지할 수 없음

onStop이 호출되고 나서 onSaveInstanceState로 값을 저장한 후 destroy, onCreate가 되면 값을 그대로 유지하는 방식

코드

https://github.com/Jojunhyeong/Unit-Transducer

profile
코린이

0개의 댓글