반응형
서론
어떤 앱의 회원가입을 위해서 아이디를 만들어야 하는코데, 아이디의 최대 길이가 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
최근댓글