본문 바로가기

안드로이드앱 코딩_AndroidApp/안드로이드 스튜디오

5번째 프로젝트 만들기_02_코딩

디자인 화면은 다음과 같은 순서로 작동한다.

 

editTextNumber를 터치해서 숫자(예: 10)를 입력한다.

START버튼을 클릭한다.

숫자 1부터 입력한 숫자까지의 수 중에서 랜덤으로 수를 하나 선택한다.

WIN 부분에 그 수를 표시한다.

 

이 프로젝트의 코드는 너무 간단하다.

 

버튼 클릭 이벤트 만들기

 

이 프로젝트에서도 코틀린 확장 라이브러리를 활용해서 버튼 클릭 이벤트를 만든다.

onCreate()함수 안에 buttonDrawLots 버튼의 클릭리스너를 만든다.

 

 

버튼 클릭 함수 만들기

 

onCreate()함수 바깥 아래에 onButtonClick()함수를 다음과 같이 만든다.

 

 

실행 내용은 다음과 같다.

19번줄: 변수(string)를 만들고 저장한다(=) 입력한 숫자(editTextNumber.text)를 문자열로 바꿔서(.toString())

변수 타입이 String이므로 문자열로 바꿔서 저장해야 한다.

 

20번줄: 변수(lastNumber)를 만들고 저장한다(=) 19번줄에서 만든 변수(string)를 정수로 바꿔서(.toInt()) 

이 변수를 랜덤 함수의 인자로 사용할 것이므로 정수로 바꾼것이다.

 

21번줄: 정수 타입 변수(winNumber)를 만들고 저장한다(=) 랜덤 클래스의 nextInt함수의 매개변수로 변수(lastNumber)를 사용해서 숫자를 뽑는다.

nextInt()함수는 0부터 괄호 안의 정수 개수 까지라는 뜻이다. 즉, 정수의 범위를 나타낸다.

0부터 개수를 세기 때문에 뒤에 1을 더해야 원하는 수까지 범위를 맞출 수 있다.

입력하지 않으면 Int 전체 범위를 나타낸다. 

 

22번줄: WIN(당첨)의 text 속성에 대입한다. 랜덤으로 뽑힌 숫자를 문자열로 바꿔서

23번줄: 숫자 입력창에 빈문자열을 넣어서 다시 입력할 준비를 한다.

 

버그 수정

 

위 코드를 테스트 해보자.

사용자 입장에서 이것 저것 시도해 보고 어떤 문제가 생기는지 확인한다.

 

확인된 버그는 다음과 같다.

 

아무것도 입력하지 않은 채 버튼을 클릭하면 멈춘다.

숫자 0을 입력했을 때 멈춘다.

 

해결 방법은 입력한 숫자를 가져온 후 조건문을 사용해서 확인하면 된다.

 

 

20번줄: 연산자 || 는 'or (또는)' 을 나타낸다. 

만약(if) 변수(string)가 빈문자열 또는 문자열 0 이면 

입력창의 텍스트를 빈문자열로 정하고

빈문자열 값을 return(반환)한다. 

 

끝.

Wraven...