Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 밑줄
- EditText
- androidstudio
- BottomSheetDialog
- Kotlin
- ViewModel
- FRAGMENT
- button
- ButtonWithButton
- Imageview
- 팝업액티비티
- MaterialButton
- Android
- RealtimeDB
- 코틀린
- lifecyclescope
- 안드로이드스튜디오
- 안드로이드
- 안드로이드 스튜디오
- 랜덤ID
- Activity
- firebase
- Dialog
- textview
- ArrayList
- ROOM
- 뷰바인딩
- nav_graph
- firebasefunctions
- OutlinedButton
Archives
- Today
- Total
안드로이드 앱 개발
키보드 관련_Edittext 본문
해당 화면을 띄웠을 때, 자동으로 포커스를 주고 키보드를 띄우는 java code
editText.requestFocus(); //focus 주기
// 키보드 띄우기
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
반대로 키보드 내리는 java code
InputMethodManager immhide = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
immhide.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
** Fragment에서는 위 코드로 작동이 안 함
//키보드 내리기
val immhide = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
immhide.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0)
앞에 requireActivity를 추가해줘야함
*** CustomDialog에서
Dismiss 될 때
keyboard를 내려주고 싶은데, 부모의 context를 받아오는게 힘들었다.
따라서, dialog띄울 때 억지로 부모의 context를 받아서 내렸다.
예시 코드
//Custom Dialog 클래스 中
fun start(context: Context){ //억지로 부모의 context 받아옴
dlg.requestWindowFeature(Window.FEATURE_NO_TITLE) //타이틀바 제거
dlg.setContentView(R.layout.dialog_create_messagegroup) //다이얼로그에 사용할 xml 파일을 불러옴
dlg.setCancelable(true) //다이얼로그의 바깥 화면을 눌렀을 때 다이얼로그가 닫히지 않도록 함
...중략...
//dismiss될 때 받아온 context를 활용해서 키보드 내리기!
dlg.setOnDismissListener {
val immhide = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
immhide.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0)
}
}
//Dialog를 띄우는 fragment나 activity에서
val dlg = DialogCreateMessageGroup(requireActivity())
...중략...
dlg.start(requireContext()) //요렇게 dialog를 띄울 때 부모의 context를 받아서 넣어주면된다.
위 코드는 fragment라서 requireContext()함수를 사용했고
activty였으면 context나 applicationContext 썼으면 됐을 듯
'안드로이드앱 > EditText' 카테고리의 다른 글
Edittext의 속성에서 maxlines가 적용이 안 될때 (0) | 2021.03.28 |
---|---|
Edittext 왼쪽 이미지 사이즈 크기 조절하는 방법 (0) | 2021.03.28 |
Edittext에 밑줄을 없애고 싶을때 or 밑줄 색상/색깔을 바꾸고 싶을 때 (0) | 2021.03.13 |
focus 관련 메소드 정리_안드로이드 스튜디오 related to Edittext focus (0) | 2021.03.13 |
안드로이드 스튜디오 Edittext (android studio edittext) onSetFocusListener 처리 (0) | 2021.03.13 |