key 이벤트, Enter, hint

tpids·2024년 8월 13일

Android

목록 보기
12/29

MainActivity3.kt

package com.example.ex_event

import android.os.Bundle
import android.view.KeyEvent
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.ex_event.databinding.ActivityMain3Binding

class MainActivity3 : AppCompatActivity() {
    lateinit var binding : ActivityMain3Binding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = ActivityMain3Binding.inflate(layoutInflater)
        setContentView(binding.root)

        // 이벤트를 연결할 때 반드시 흐름 먼저 정리하고 기능 만들기!
        // 1. send 버튼에 클릭 이벤트 연결
        binding.send.setOnClickListener{
            // 2. send 버튼이 눌렸을 때 PlainText(id:input)에 입력된 내용 가져오기
            var data : String = binding.input.text.toString()
            // 3. 입력된 값을 화면에 띄울 수 있도록 TextView에 전달하기
            binding.msg.text = data
        }

        // +) 키보드 Enter를 이용한 이벤트 연결
        // key리스너 사용 시 필수 매개변수
        // v, keyCode, event -> 1. 키가 눌렸는지 2. 키가 눌러져 있다가 떨어졌는지
        binding.input.setOnKeyListener{ v, keyCode, event ->
            // 1. keycode가 Enter가 눌렸는지 안눌렸는지 판단
            if(keyCode == KeyEvent.KEYCODE_ENTER){
                // 2. 입력된 내용을 가져와서 data 변수에 저장
                var data = binding.input.text.toString()

                // +) 디테일 추가 ( 입력 값 초기화 )
                binding.input.setText("")

                // 3. 저장된 data 값을 TextView에 띄우기
                binding.msg.text = data
                // 한번 셋팅된 이벤트를 그대로 다른 이벤트로 연결
                true
            }
            // 셋팅된 내용을 다른 이벤트를 진행할 때 무효화 하는 기능
            false

        }


    }
}

profile
개발자

0개의 댓글