[Develop]/[Android]

[Android] 개발 시작하기 - Kotlin 함수

lg2ivl3 2025. 8. 12. 21:44
 

[Android] 개발 시작하기 - Kotlin 버튼 기능 추가

[Android] 개발 시작하기 - Kotlin 변수 생성변수 선언하기"var" vs "val"변수의 선언 방법은 아래와 같다."var"의 경우 변수의 값(value)이 변경되는 경우 사용하고, "val"의 경우 변수의 값(value)이 변경되지

lg2ivl3.tistory.com

1. 함수 추가하기

이전 포스트에서는 버튼을 통해 특정한 동작(TextView으 문자열을 수정하는)을 수행할 수 있도록 하였다. 이번에는 함수를 추가하고, 버튼을 클릭함으로 함수를 호출하여 기능을 수행하도록 해보자.

package com.application.firstproject

import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import android.widget.Button
import android.widget.TextView
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }
        val btnTest : Button = findViewById(R.id.test_button)
        val text = findViewById<TextView>(R.id.textView)

        btnTest.setOnClickListener {
            text.text = "Hi LGTM"
        }
    }
}

현재 MainActivity.kt의 상태는 위와 같다.

 

오늘 구현해볼 함수는 간단하게, 버튼을 클릭한 횟수를 count하는 함수를 구현하도록 하자. 이를 위해 count 변수를 아래와 같이 선언해준다.

var num_count:Int = 0

 

이후 함수도 아래와 같이 추가해준다.

fun count(num: Int): Int {
    return num + 1
}

기본적으로 Python과 C언어와 형태가 비슷하다. "num: Int"는 입력변수와 변수의 타입, 그리고 ": Int"는 리턴 변수의 타입이다.

 

2. 버튼 클릭시 함수 호출

버튼 클릭시에 "count"함수를 호출 할 수 있도록 아래와 같이 "setOnClickListener"의 내부를 수정해주었다.

btnTest.setOnClickListener {
    num_count = count(num_count)
}

이후에는 num_count의 값이 버튼을 클릭하면 변하는 것을 화면을 통해 볼 수 있도록 이전과 동일하게 TextView의 값을 num_count로 변경해주자.

text.text = num_count

예상했던 결과이다. TextView의 값을 변경하기 위해서는 int 타입인 num_count를 string으로 변환해주어야 한다. 아래와 같이 int 타입을 string형태로 변환해주자.

text.text = num_count.toString()

 

 

3. 동작 확인

빨간색 박스의 "TEST BUTTON"을 클릭할 때마다 정상적으로 "TextView"에 클릭 횟수가 변경되는 것을 확인할 수 있다.

 

최종적으로 수정된 코드는 아래와 같다.

package com.application.firstproject

import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import android.widget.Button
import android.widget.TextView
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }
        val btnTest : Button = findViewById(R.id.test_button)
        val text = findViewById<TextView>(R.id.textView)
        var num_count:Int = 0
        text.text = num_count.toString()
        btnTest.setOnClickListener {
            num_count = count(num_count)
            text.text = num_count.toString()
        }
    }

    fun count(num: Int): Int {
        return num + 1
    }
}