본문 바로가기

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

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

디자인을 완성했으면 이제 코딩할 시간이다.

MainActivity.kt 탭을 눌러서 코딩 화면을 띄우자.

 

기본적인 화면은 위와 같다.

앱이 실행하는 과정을 다시 살펴보자.

앱은 처음에 MainActivity.kt 파일 안에 있는 코드부터 실행한다.

분홍색 부분에 설정되어 있는 변수를 메모리에 저장한다.

그 다음 처음 실행하는 함수가 onCreate()라고 했다. 

 

View 설정

 

처음 실행되는 onCreate()함수에는 디자인 화면의 View를 보여주기 위해 불러와야 한다.

View를 찾을 때는 findViewById (id로 뷰 찾기)내부 함수를 이용해서 호출한다.

이 프로젝트에서 불러와야 하는 View는 버튼4개 , 종료에 사용 할 FAB버튼 그리고 결과를 나타내는 텍스트뷰이다.

먼저 버튼 부터 불러와서 메모리에 넣는다.

 

버튼을 불러온 후 클릭하는 소리를 들어야 하므로 setOnClickListener 함수를 연결하고 매개변수로 onButtonClick를 만든다. 이 변수는 아직 만들지 않았기 때문에 빨간색이다.

 

버튼 4개는 이전 프로젝트에서 호출한 방법과 달리 디자인에서 각 버튼에 설정했던 tag(태그, 꼬리표)를 이용해서 호출하는 방법을 사용한다. 버튼이 여러 개일 때 유용한 방법이다.

for반복문을 사용해서 i라는 변수를 만들고 0부터 3까지 하나씩 button1에 더하면 button1,button2,button3,button4를  호출할 수 있다.

버튼을 클릭하는 소리가 들리면 onButtonClick 변수를 호출하는 것은 FAB버튼과 같다.

 

이번에는 결과를 나타내는 텍스트뷰인 textViewResult 를 textResult라는 변수를 만들어서 호출한다.

onCreate()함수 위쪽에 변수를 정의하고 초기화는 onCreate()함수에서 실행하도록 늦은 초기화를 사용한다.

 

변수 onButtonClick 만들기

 

onCreate()함수 바깥에 onButtonClick 변수를 작성한다.

 

onButtonClick변수에 View.OnClickListener로 매개변수 view로 실행한 내용을 저장한다.

 

실행할 내용을 코딩한다.

 

만약(if) view의 id와 FAB의 id가 같으면 finish()함수를 실행한다.

그렇지 않으면(else)

변수tag에 view의 id의 tag값을 문자열로 변환하여 저장한다.

그 다음 checkValue함수에 tag를 전달한다.

checkValue함수에서 tag값을 이용해서 결과를 만든다.

 

checkValue함수 만들기

 

onButtonClick변수 바깥에 checkValue함수를 만든다.

 

실행 내용을 작성한다.

 

36번줄: 변수tagNum을 만들고 여기에 String으로 가져온 tag값을 Int(정수)로 바꿔 저장한다.

Int로 바꾸는 이유는 Int인 랜덤수와 서로 비교하기 위해서이다.

 

37번줄: 변수 randomNum을 만들고 여기에 랜덤으로 만든 수를 저장한다.

랜덤수는 Int로 만들고 0~3까지 4개의 수를 균등하게 랜덤수로 만든다.

tag 번호는 1부터 4까지 이므로 랜덤수에 1을 더하면 1부터 4까지 만들 수 있다.

참고로 여기서는 코틀린의 Random.nextInt 함수를 사용해서 랜덤을 만들었다. 

만약 Java의 랜덤을 사용하면 Random().nextInt()로 표현한다.

 

38번줄: 변수 result를 만들고 여기에 문자열과 tag값을 연결하여 저장한다.

 

39번줄: 변수 result에 다음 조건에 맞는 문자열을 더한다.

만약 tagNum와 randomNum가 같으면 문자열 : Lucky!

그렇지 않으면  : Sorry!

 

44번줄: textResult는 textViewResult 텍스트뷰를 저장하고 있다.

그러므로 textResult.text는 textViewResult.text를 나타낸다.

여기에 39번줄에서 만들어진 result값을 저장한다.

 

코드가 완성되었다.

실행해서 테스트 해보자.

 

 

세번째 프로젝트 끝.

 

Wraven...