상세 컨텐츠

본문 제목

[안드로이드 코틀린] 텍스트(EditText) 입력 체크 및 버튼(Button) 활성화

안드로이드

by aries574 2022. 7. 19. 09:35

본문


이번 시간에는 문자를 입력하는 EditText값의 유무에 따라 버튼이 활성화/비활성화되는 방법을 알아보겠습니다.


목차

1. 실행 화면
2. 메인 화면 구현 activity_main.xml
3. 메인 코드 구현 MainActivity.kt 


1. 실행 화면

 

2. 메인 화면 구현 activity_main.xml

- 설명 -

1. 메시지 입력하는 EditText

2. 메시지 보여주는 Button

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/message_edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="메시지 입력"/>

    <Button
        android:id="@+id/message_btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="메시지 띄우기"
        android:textSize="25sp"/>
</LinearLayout>

 


3. 메인 코드 구현 MainActivity.kt 

- 설명 -

1. addTextChangedListener

  값의 변화를 체크하는 이벤트

2. onTextChanged

  값이 변경되면 실행되는 함수

class MainActivity : AppCompatActivity(){

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

        //객체 생성
        val messageEdit: EditText = findViewById(R.id.message_edit)
        val messageBtn: Button = findViewById(R.id.message_btn)

        //메시지 담을 변수
        var message: String = ""

        //버튼 비활성화
        messageBtn.isEnabled = false

        //EditText 값 있을때만 버튼 활성화
        messageEdit.addTextChangedListener(object: TextWatcher{
            override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {}

            //값 변경 시 실행되는 함수
            override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {

                //입력값 담기
                message = messageEdit.text.toString()

                //값 유무에 따른 활성화 여부
                messageBtn.isEnabled = message.isNotEmpty() //있다면 true 없으면 false
            }

            override fun afterTextChanged(p0: Editable?) {}
        })

        //버튼 이벤트
        messageBtn.setOnClickListener {
            Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
        }


    }//onCreate

}

2022.07.18 - [안드로이드] - [안드로이드 코틀린] 포커스 이벤트 숫자(천 단위) 콤마 넣는 방법

 

[안드로이드 코틀린] 포커스 이벤트 숫자(천 단위) 콤마 넣는 방법

이번 시간에는 OnFocusChangeListener을 사용해서 EditText에 숫자를 입력하면 포커스 상태에 따라 콤마 표시를 해주는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구현 activity_mai

aries574.tistory.com

2022.07.17 - [안드로이드] - [안드로이드 코틀린] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기

 

[안드로이드 코틀린] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기

이번 시간에는 onClick 이벤트가 여러 개 있을 때 한 곳에서 쉽게 관리할 수 있는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구현 activity_main.xml 3. 메인 코드 구현 MainActivity.kt..

aries574.tistory.com

2022.07.16 - [안드로이드] - [안드로이드 코틀린] 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터 보내는 방법

 

[안드로이드 코틀린] 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터 보내는 방법

이번 시간에는 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터를 전달하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 인터페이스 만들기 SendEventListener.kt 3. 프래그먼트 만들기

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역