Programing/Android(Kotlin)

[Udemy] 계산기(Android 및 Kotlin 개발 완전 정복)

hye3193 2023. 7. 12. 15:28

하드코딩이란?

- 소스 코드에 데이터를 직접 입력해서 저장하는 것

하드 코딩을 하게 되면 나중에 의미를 파악하기 힘들고, 유지보수가 힘들다

따라서 xml 파일에 추가 후 불러와서 사용하는 것을 권장

 

onClick 대신 onClickListener를 사용해서 코딩하기

1. MainActivity 파일에 private var <변수명> : < 타입> = <초기값>으로 변수 생성

2. onCreate 함수 내에 <변수명> = findViewById(R.id.<id값>) 으로 개체 찾기

3. <변수명>.setOnClickListener { <실행할 코드> } 로 실행 내용 지정

* 그러나 이번 실습에서 만든 계산기 등의(정리되지 않은 코드로 급하게 앱을 만들어야 하는데 버튼의 양이 너무 多) 프로그램을 만들어야 할 경우 그냥 onClick 코드를 사용하는 편이 더 빠르다

* 단, 기본적으로 모범적인 방법은 onClickListener를 사용해서 만드는 것!

 

onClick으로 코딩하기

1. MainActivity 파일에 클릭 시 실행할 함수를 생성 (아래 예시)

fun onDigit(view: View){
    tvInput?.append((view as Button).text)
}

* view는 클릭한 버튼의 속성들을 담고 있기 때문에 받아와주는 것

* view as Button으로 작성하는 이유: view 자체에는 text 속성이 없기 때문

2. activity_main.xml 파일에서 개체(Button)에 android:onClick="<실행할 메소드명>"을 추가

 

플래그 기능

현재 무언가가 활성/비활성 상태인지 알려주기 위해 변수(Boolean)를 사용하는 것

 

특정 문자열 포함 여부 확인

<변수명(문자열)>.contains("<체크할 문자열>") 으로 Bool 형식 값을 얻을 수 있다.

 

let 함수 또는 if 문을 이용하여 null safe 처리

: 두 방법 다 특정 변수가 null이 아닐 때에만 실행되게 하지만, 단순히 null check 용도라면 if문 대신 null을 사용하는 건 이득이 없다

 

fun onOpertor(view: View){
    tvInput?.text?.let{
        if(lastNumeric && !isOperatorAdded())
    }
}

위와 같이 사용 시, it: CharSequence라고 나오기 때문에, it을 문장의 메소드에 사용할 수 있다.

단, 문자열로서 사용하려면 it.toString()과 같이 문자열로 바꾸어주어야 한다.

 

특정 인덱스만 남기기

<변수명>.substring(<index>) 로 몇번째 글자부터 남길지 정할 수 있다.

ex. userInput = "abcde", userInput.substring(2) = "cde"

혹은 (<시작 index>, <끝 index>)로 사용