본문 바로가기

Kotlin(코틀린)

Kotlin(코틀린) > 사칙연산을 수행하는 계산기를 만들어 보자! - 2

저번 포스팅과 이어서 사칙연산을 수행하는 계산기를 만들어 본다.

저번 포스팅에는

1. 레이아웃 구성
2. id와 각각의 text, 힌트 설정
3. 덧셈 버튼 기능 구현

 

까지 완성하였다. 

덧셈 버튼 기능을 만든 것과 같이 나머지 기능을 다음과 같이 구현한다.

 

위에서부터  뺄셈, 곱셈, 나눗셈 구현

 

사실상 같은 코드가 반복되어 있어서 복사 붙여넣기 후 수정을 하면 편할 것이다!

덧셈, 뺄셈, 곱셈, 나눗셈 기능 구현

num1 = binding.edit1.text.toString()
num2 = binding.edit2.text.toString()

 

위 코드를 함수 바깥으로 빼서 애뮬레이터를 돌렸는데 과부하에 걸렸는지 튕김 현상이 발생했다.

아마 계속적으로 텍스트 입력값을 받아서 그런듯 하다.

 

계산기의 전체적인 기능은 만들었고, 0을 나누었을 때 예외처리가 필요할 것이다

만약 0을 나누었을 때 textResult(결과값)을 0으로 지정한 후

토스트 메시지(알림 메시지)로 '0으로 나눌 수 없음'을 표시해 보겠다.

 

if 문을 추가하여 num2(분모)가 0이면 결과값 0, 토스트 메시지 출력

설명과 같이 if 문을 추가하여 textResult의 텍스트 값을 0으로 출력하고 토스트 메시지를 출력하였다.

 

0으로 나누었을 때의 토스트 메시지

 

토스트 메시지의 기본 꼴은 다음과 같다.

Toast.makeText( 토스트메시지를 띄울 액티비티, 텍스트, 토스트시간).show()

일반적으로 토스트 메시지를 현재 액티비티에 띄우므로 this가 일반적으로 오고,

텍스트는 변수 값을 받아도 되며, 직접 String 값을 입력해도 된다.

string.xml에 넣으면 좀 더 완성도 있는 코드가 될 것이다.

Toast.LENGTH_LONG / Toast.LENGTH_SHORT 중 하나를 골라 입력 하면 된다.

뜻 그대로 길게 / 짧게 토스트 메시지를 출력한다.

 

String.xml에 넣어 완성도 있는 코드를 만들어보겠다

res/string.xml 파일에 다음과 같이 divide 이름으로 만들어준다

divide string 선언

이렇게 되면 모든 string res 파일을 관리할 수 있다

 

다시 본 화면으로 돌아와서

Toast.makeText(this, R.string.divide, Toast.LENGTH_LONG).show()

부분만 수정해 준다. 그러면 기능상 변함없이 실행이 될 것이다.

 

간단한 계산기 구현과 토스트 메시지를 만들어보았다.

적응되면 별로 어렵지 않지만, 처음 구현하려 해보면 되게 낯설고 어려울 것이다.

앞으로 이렇게 간단한 코딩을 해보며 그리고 적응하며 코틀린과 더 친해지고 싶다.