이번 시간에는 EditText를 이용해서 소프트 키보드를 보이거나 숨기는 방법에 대하여 알아보겠습니다.
- 설명 -
1. 키보드를 숨기거나 호출하는 EditText
2. android:inputType="text"
입력 타입 문자로 설정
3. android:imeOptions="actionDone"
키보드 작업 버튼 지정
4. 참조 사이트
https://developer.android.com/training/keyboard-input/style?hl=ko
<?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"
android:gravity="center"
tools:context=".MainActivity">
<EditText
android:id="@+id/keyboard_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:imeOptions="actionDone"
android:inputType="text"
android:textSize="30sp"/>
</LinearLayout>
- 설명 -
1. keyBoardEdit.setOnEditorActionListener
EditText 에디트 액션 이벤트
2. actionId == EditorInfo.IME_ACTION_DONE
액션 버튼 체크
3. manager.hideSoftInputFromWindow
키보드 숨김 함수(반환된 요청을 수행하는 창의 토큰, 추가 동작 플래그)
4. manager.showSoftInput
키보드 보여주기 함수(입력받을 뷰, 동작 플래그)
5. 참조 사이트
class MainActivity : AppCompatActivity(){
private lateinit var keyBoardEdit: EditText
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//객체 생성
keyBoardEdit = findViewById(R.id.keyboard_edit)
//입력모드
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
//키보드 열기
showKeyboard(keyBoardEdit)
keyBoardEdit.setOnEditorActionListener { textView, actionId, keyEvent ->
val text = keyBoardEdit.text.toString()
if(actionId == EditorInfo.IME_ACTION_DONE){
//키보드 숨김
hideKeyboard(keyBoardEdit)
//입력한 메시지 보여줌
Toast.makeText(applicationContext, text, Toast.LENGTH_SHORT).show()
true
}
false
}
}//onCreate
//키보드 숨기기
private fun hideKeyboard(editText: EditText){
val manager: InputMethodManager =
getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
//키보드 숨김
manager.hideSoftInputFromWindow(keyBoardEdit.applicationWindowToken, 0)
}
//키보드 보여주기
private fun showKeyboard(editText: EditText){
val manager: InputMethodManager =
getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
//키보드 보여주기
manager.showSoftInput(keyBoardEdit.rootView, InputMethodManager.SHOW_IMPLICIT)
//포커스 지정
keyBoardEdit.requestFocus()
}
}
2022.08.16 - [안드로이드] - [안드로이드 코틀린] 클립보드(Clipboard) 텍스트 복사(Copy)&붙여 넣기(paste) 하는 방법
2022.07.27 - [안드로이드] - [안드로이드 코틀린] DatePicker 달력 만드는 방법
2022.07.30 - [안드로이드] - [안드로이드 코틀린] TimePicker 내가 선택한 알람 시간 텍스트뷰에 보여주는 방법
[안드로이드 코틀린] 속성 애니메이션 (이미지를 움직이게 하는 방법) (0) | 2022.08.19 |
---|---|
[안드로이드 코틀린] 내가 원하는 글씨체 폰트(Font) 적용하는 방법 (0) | 2022.08.18 |
[안드로이드 코틀린] 클립보드(Clipboard) 텍스트 복사(Copy)&붙여 넣기(paste) 하는 방법 (0) | 2022.08.16 |
[안드로이드 코틀린] RecyclerView Animation 스크롤(Scroll) 에 애니메이션 효과 주는 방법 (0) | 2022.08.15 |
[안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part2 (0) | 2022.08.12 |
댓글 영역