서론

어떤 앱의 회원가입을 위해서 아이디를 만들어야 하는코데, 아이디의 최대 길이가 10자다.

그런데 사용자가 아이디를 12자 입력하고 회원가입 버튼을 연타하고 있다.

이때 우리는 이 사용자에게 아이디의 길이가 최대 10자라고 알려줘야한다.

 

 

 


본론

버튼을 누르면 "Hello World"가 쓰여진 토스트가 나타나도록 구현한다.

activity_main.xml

먼저 버튼을 그린다. 아래 activity_main.xml의 그림과 코드는 예시이며 똑같이 만들 필요는 없다.

 

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="173dp"
        android:layout_height="87dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

 

MainActivity.kt

button.setOnClickListener

setOnClickListener를 이용, 버튼 클릭시 makeToast를 실행하도록 한다.

makeToast 메서드는 토스트를 실행하는 코드가 들어있다.

 

activity_main.xml에서 버튼의 id를 button으로 지정했다.

val button : Button = findViewById(R.id.button)
button.setOnClickListener{
	makeToast()
}

 

onCreate에 삽입

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val button : Button = findViewById(R.id.button)
    button.setOnClickListener{
        makeToast()
    }
    
}

 

makeToast

텍스트 토스트를 출력하기 위해 Toast 클래스의 makeText 메서드를 이용한다.

makeText의 파라미터는 (applicationContext, "내용", 토스트 출력시간)이다.

토스트 출력시간은 'Toast.LENGTH_SHORT', 'Toast.LENGTH_LONG'이 있는데, SHORT는 약 2초, LONG는 약 4초 출력한다.

fun makeToast(){
    val text = "Hello World" // 출력 내용
    val toast = Toast.makeText(applicationContext, text, Toast.LENGTH_SHORT)
    toast.show() // 토스트 출력
}

 

 

 

 

전체코드

package com.hydroponicglass.study // 패키지명 수정 필요

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button : Button = findViewById(R.id.button)
        button.setOnClickListener{
            makeToast()
        }

    }

    fun makeToast(){
        val text = "Hello World"
        val toast = Toast.makeText(applicationContext, text, Toast.LENGTH_SHORT)
        toast.show()
    }
}

 


참고

https://developer.android.com/guide/topics/ui/notifiers/toasts

https://developer.android.com/guide/topics/ui/controls/button#kotlin