yourginieus
User Interactivity : 사용자와 상호작용 - 키보드 보이기, 숨기기 본문
Android/Android Kotlin 기초 실습 정리
User Interactivity : 사용자와 상호작용 - 키보드 보이기, 숨기기
EOJIN 2022. 10. 25. 18:56- 사용자가 텍스트를 입력하는 방법 : EditText
- TextView는 사용자에게 텍스트를 입력받을 수 없음
- input을 허용하기 위해서는, edit text라는 UI를 사용해야 함
- EditText를 사용하면 됨 - TextView의 subclass!
- EditText에 나타나는 밑줄은 해당 내용이 editable함을 나타냄
- hint : EditText에 나타나는 기본 힌트 설정. 사용자는 이 힌트를 통해 어느 값을 입력해야 하는지 알 수 있음
- inputType : 사용자가 입력할 수 있는 입력 유형을 지정함 - 유형에 따라 적절한 입력필드와 화면상의 키보드를 표시해 줌
- textPassword, phone, textPersonName, date, number 등
- 버튼을 이용하여 사용자와 소통
- Button : 사용자가 탭하여 작업을 수행할 수 있는 UI 요소
- Button 안의 글자는 text 속성을 이용해 설정 가능
- style을 Widget.AppCompat.Button.Colored 으로 지정하면 기존의 accent color로 버튼 색상을 바꿔 줌(accent color는 res/values/colors에서 설정)
- 폰트 설정은 fontFamily 속성을 통해 설정
<Button
android:id="@+id/done_button"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/layout_margin"
android:fontFamily="@font/roboto"
android:text="@string/done" />
**layout_gravity : 뷰를 상위 레이아웃 기준으로 어디에 위치할건지 지정
- 버튼에 클릭 리스너 추가
- Activity 파일에서 구현
- 보통 클릭했을 때 실행되는 함수를 만들어놓고 그걸 setOnClickListener에 넣어 줌
- setOnClickListener에 넣거나, layout 파일에서 android:onClick 속성에 그 함수를 지정해주면 됨
private fun clickHandlerFunction(viewThatIsClicked: View) {
// Add code to perform the button click event
}
myButton.setOnClickListener {
clickHanderFunction(it)
}
<Button
android:id="@+id/done_button"
android:text="@string/done"
...
android:onClick="clickHandlerFunction"/>
**예시 코드
private fun addNickname(view: View) {
val editText = findViewById<EditText>(R.id.nickname_edit)
val nicknameTextView = findViewById<TextView>(R.id.nickname_text)
nicknameTextView.text = editText.text
editText.visibility = View.GONE
view.visibility = View.GONE
nicknameTextView.visibility = View.VISIBLE
}
findViewById<Button>(R.id.done_button).setOnClickListener {
addNickname(it)
}
-> 그런데 버튼을 탭해도 editText의 키보드는 계속 표시 됨!
- 키보드 숨기기
- 클릭리스너의 마지막에 다음 코드를 추가함
// Hide the keyboard.
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)
- 이후 다시 editText를 visible로 설정하면, editText 뷰에 포커스를 두고 키보드를 표시하는 방법
- visible로 설정하는 클릭리스너 마지막에 requestFocus() 메소드 사용
// Set the focus to the edit text.
editText.requestFocus()
// Show the keyboard.
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(editText, 0)
- visibility
- 뷰를 보이게 하거나 안 보이게 하거나!
- visible : 뷰가 표시 됨
- Invisible : 뷰를 숨기지만, 레이아웃 내의 공간은 차지함
- gone : 뷰를 숨기고 공간도 차지XX
'Android > Android Kotlin 기초 실습 정리' 카테고리의 다른 글
Data binding (0) | 2022.10.25 |
---|---|
ConstraintLayout, Chain, setBackgroundColor/Resource, 리스트의 아이템에 click handler 적용 (0) | 2022.10.25 |
LinearLayout, TextView, Scroll View, dp/sp (0) | 2022.10.25 |
Basic Activity Architecture, Launcher Icon 변경 (0) | 2022.10.25 |
setImageResources, tools, dependencies (0) | 2022.10.25 |
Comments