본문 바로가기
안드로이드/Widget

안드로이드 EditText

by 김어찐 2022. 5. 27.
728x90

주요 속성

text : EditText에 표시할 문자열을 설정한다.
hint : 입력된 값이 없을 경우 표시할 안내 문구를 설정한다.
inputType : 입력 값에 대해 설정한다. 표시되는 형식, 나타나는 키보드 등에 영향을 준다.
imeOptions : 나타나는 키보드의 Enter 키 모양을 설정한다.

 

주요 프로퍼티

text : 사용자가 입력한 문자열 값

 

이벤트

TextWatcher : 사용자가 입력한 내용을 실시간으로 감시한다.
EditorAction : 키보드의 Enter 키를 눌렀을 때 발생하는 이벤트

 

package com.example.edittext

import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.inputmethod.InputMethodManager
import androidx.core.widget.addTextChangedListener
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button1.setOnClickListener {
            textView1.text = editText1.text

            // 포커스 삭제
            val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            imm.hideSoftInputFromWindow(editText1.windowToken,0)

            editText1.clearFocus()

        }

        editText1.addTextChangedListener(listener1)
        // enter키 눌렀을때 액션
        editText1.setOnEditorActionListener{v,actionId,event ->
            textView1.text = "엔터 버튼을 눌렀습니다."
            textView2.text = editText1.text
            // false 키보드 없어짐, true 키보드 안없어짐
            false


        }
    }

    val listener1 = object : TextWatcher{
        // 문자열이 변경되기 전
        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
            textView1.text = "before : $s"
        }

        // 문자열 변경 작업이 완료되었을 때
        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
            textView2.text = "changed : $s"
        }

        // 변경된 문자열이 화면에 반영되었을 때
        override fun afterTextChanged(s: Editable?) {
            textView3.text = "after : $s"
        }
    }


}
728x90

'안드로이드 > Widget' 카테고리의 다른 글

안드로이드 ToggleButton  (0) 2022.05.30
안드로이드 ImageView  (0) 2022.05.30
안드로이드 TextInputLayout  (0) 2022.05.30
안드로이드 Button  (0) 2022.05.27
안드로이드 TextView  (0) 2022.05.27