이 튜토리얼에서는 Kotlin을 사용해 안드로이드 앱에서 EditText에 숫자 값만 입력할 수 있도록 설정하는 방법을 단계별로 알아봅니다. 사용자가 전화번호, 나이, 금액 등 숫자 데이터를 입력해야 하는 경우 유용하게 활용할 수 있습니다.
1단계: 새 프로젝트 생성
Android Studio에서 File → New Project를 선택하고, 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다.
2단계: 레이아웃 파일 작성 (activity_main.xml)
res/layout/activity_main.xml 파일에 아래 코드를 추가합니다. 여기서 핵심은 EditText의 android:inputType="number" 속성입니다. 이 속성을 지정하면 소프트 키보드가 숫자 패드로 전환되어 숫자 입력만 허용됩니다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:background="#008080"
android:padding="5dp"
android:text="TutorialsPoint"
android:textColor="#fff"
android:textSize="24sp"
android:textStyle="bold" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:inputType="number"
android:ems="10" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="Click Here to set numeric value for EditText" />
</RelativeLayout>3단계: MainActivity.kt 코드 작성
src/MainActivity.kt 파일에 다음 코드를 추가합니다. 버튼 클릭 시 코드로도 EditText의 inputType을 숫자 타입으로 변경하도록 구현했습니다. XML에서 미리 설정하지 않고 런타임 중 동적으로 적용해야 하는 경우에 활용할 수 있는 방식입니다.
import android.os.Bundle
import android.text.InputType
import android.widget.Button
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
val button: Button = findViewById(R.id.button)
val editText = findViewById<EditText>(R.id.editText)
button.setOnClickListener {
editText.inputType = InputType.TYPE_CLASS_NUMBER
}
}
}코드에서 사용된 InputType.TYPE_CLASS_NUMBER는 입력 필드가 숫자 클래스임을 시스템에 알려주는 상수입니다. 이 값을 설정하면 키보드가 자동으로 숫자 전용 모드로 변경됩니다.
4단계: AndroidManifest.xml 확인
androidManifest.xml 파일에는 별도의 특수 권한 없이 기본 설정 그대로 사용하면 됩니다. 참고용으로 전체 매니페스트 코드는 아래와 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.q11">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>앱 실행 및 결과 확인
실제 안드로이드 기기를 컴퓨터에 연결한 후, Android Studio에서 프로젝트의 액티비티 파일을 열고 툴바의 Run(실행) 버튼을 클릭합니다. 실행 대상으로 연결된 모바일 기기를 선택하면, 기본 화면과 함께 앱이 실행됩니다.
버튼을 누르면 EditText의 입력 타입이 숫자로 변경되어, 키보드가 숫자 패드로 전환되는 것을 확인할 수 있습니다.