[Android] 개발 시작하기 - Kotlin 조건문(if)
코딩은 사실 조건문과 반복문만 알면 웬만한 알고리즘은 구현 가능하다고 할 수 있을 정도로 조건문과 반복문이 정말 중요하다. 물론 협업을 위해 코드의 가독성을 최적화를 하거나, C언어의 포
lg2ivl3.tistory.com
이전 포스트에서는 버튼을 클릭하면 숫자가 증가하고, 해당 텍스트의 값이 홀수인지 짝수인지를 표시해주는 앱을 만들어 보았다. 이번 포스트에서는 한단계 더 나아가 정수를 입력하고, 버튼을 클릭하면 해당 값이 홀수인지 짝수인지를 표시해주는 앱을 만들어 보고자 한다.
1. EditText 추가하기
먼저, 값을 입력받기위한 EditText를 추가해 주어야 한다. 방법은 Button과 동일하다. 아래 이미지를 참고하여 EditText를 추가해주자.

우선 우리는 숫자를 입력받아야 함으로, "Number"를 드래그 앤 드롭하여 화면에 추가해준다. 이후 ConstraintLayout의 제약을 추가해 주면 된다. 이때 제약 조건을 추가해 주었음에도 아래와 같은 오류 메시지가 남아있었다.

"<EditText>:No speakable text present"에러는 무시하거나, "android:hint"의 값을 추가하면 된다고 한다.
<EditText
android:id="@+id/editTextNumberSigned"
android:layout_width="247dp"
android:layout_height="89dp"
android:ems="10"
android:inputType="numberSigned"
android:hint="int"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.107" />
따라서 간단히 android:hint="int"를 추가해 주었고, 오류가 해결된 것을 확인하였다.
2. EditText 값 받아오기
값을 입력받을 수 있는 EditText를 추가해 주었으니, 이제는 입력받은 값을 사용해보자. 먼저 EditText를 사용하기위해 "MainActivity.kt" 상단에 아래와 같은 코드를 추가해 주자.
import android.widget.EditText
이후에는 Button과 TextView와 동일하게, 아래 코드 또한 추가해 주자.
val inputInt = findViewById<EditText>(R.id.editTextNumberSigned)
이후 EditText에 입력된 값을 받아오는 것은 TextView와 동일하게 아래와 같이 가져올 수 있다.
inputInt.text
그러나 EditText로 입력받은 값을 아래와 같이 사용하는 경우 에러가 발생한다.
val inputInt = findViewById<EditText>(R.id.editTextNumberSigned)
var num_count:Int = 0
num_count = inputInt.text

EditText로 입력받은 값의 경우 그 타입이 "Editable!"이 기본값인 듯 하다. 또한 Int로 바로 변경하는 것도 불가능한듯 하다. 따라서 아래와 같이 사용하면 정상적으로 동작하는것 같다.
num_count = inputInt.text.toString().toInt()
3. App 구현 및 실행하기
이제는 EditText로 실제 앱을 구현해보자. 앱은 맨 상단의 조건문과 관련된 포스트의 코드를 약간 수정하여 구현할 것이다. 구현하고자 하는 앱의 기능은 EditText로 숫자를 입력하고, 버튼을 클릭하면 해당 숫자가 홀수인지 짝수인지 출력하는 앱을 구현할 것이다.
해당 기능을 구현한 "MainActivity.kt"의 코드는 아래와 같다.
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
import android.widget.EditText
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)
val text2 = findViewById<TextView>(R.id.textView2)
val inputInt = findViewById<EditText>(R.id.editTextNumberSigned)
var num_count:Int = 0
text.text = num_count.toString()
btnTest.setOnClickListener {
num_count = inputInt.text.toString().toInt()
text.text = num_count.toString()
if(num_count % 2 == 0){
text2.text = "even"
}
else{
text2.text = "odd"
}
}
}
}
이후에 실제 앱을 실행시켜보면 아래와 같이 정상적으로 동작하는 것을 확인할 수 있다.

'[Develop] > [Android]' 카테고리의 다른 글
| [Android] 개발 시작하기 - Android Studio 로그 확인하기 (0) | 2025.09.04 |
|---|---|
| [Android] 개발 시작하기 - RoomDB 사용하기 (3) (0) | 2025.09.02 |
| [Android] 개발 시작하기 - RoomDB 사용하기 (2) (0) | 2025.08.26 |
| [Android] 개발 시작하기 - Kotlin 반복문(for) (0) | 2025.08.22 |
| [Android] 개발 시작하기 - Kotlin 조건문(if) (3) | 2025.08.18 |