이번 시간에는 문자를 입력하는 EditText에 값의 유무에 따라 버튼이 활성화/비활성화되는 방법을 알아보겠습니다.
- 설명 -
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>
- 설명 -
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 - [안드로이드] - [안드로이드 코틀린] 포커스 이벤트 숫자(천 단위) 콤마 넣는 방법
2022.07.17 - [안드로이드] - [안드로이드 코틀린] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기
2022.07.16 - [안드로이드] - [안드로이드 코틀린] 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터 보내는 방법
[안드로이드 코틀린] 별점(RatingBar) 만드는 방법 (0) | 2022.07.21 |
---|---|
[안드로이드 코틀린] 기본 카메라 사진 찍고 이미지뷰에 보여주는 방법(StartActivityForResult deprecated 해결방법) (2) | 2022.07.20 |
[안드로이드 코틀린] 포커스 이벤트 숫자(천 단위) 콤마 넣는 방법 (0) | 2022.07.18 |
[안드로이드 코틀린] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기 (0) | 2022.07.17 |
[안드로이드 코틀린] 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터 보내는 방법 (0) | 2022.07.16 |
댓글 영역