반응형
Android에서 EditText
에서 키보드를 숨기기(해제) 위한 방법은 여러 가지가 있습니다. 여기에서는 가장 일반적으로 사용되는 방법들을 설명하겠습니다.
1. 사용자가 EditText 외부를 터치했을 때 키보드를 숨기기
사용자가 EditText
외부를 터치했을 때 키보드를 숨기기 위해, Activity
의 onTouchEvent()
를 재정의하여 키보드를 숨길 수 있습니다.
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
View view = getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
view.clearFocus();
}
}
return super.onTouchEvent(event);
}
2. EditText에서 포커스를 잃을 때 키보드를 숨기기
EditText
가 포커스를 잃었을 때 키보드를 숨기고 싶다면, OnFocusChangeListener
를 사용합니다.
EditText editText = findViewById(R.id.edit_text);
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
});
3. 프로그래밍적으로 키보드를 숨기기
프로그래밍적으로 특정 이벤트(예: 버튼 클릭)에서 키보드를 숨기려면, 다음 코드를 사용할 수 있습니다.
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
4. 버튼 클릭 시 키보드를 숨기기
버튼 클릭 시 키보드를 숨기려면, 버튼의 OnClickListener
에서 키보드를 숨기는 코드를 추가합니다.
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
});
5. Activity 종료 시 키보드를 숨기기
Activity
가 종료될 때 키보드를 숨기려면, onPause()
메서드에서 다음과 같은 코드를 추가할 수 있습니다.
@Override
protected void onPause() {
super.onPause();
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
View view = getCurrentFocus();
if (view != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
위의 방법들을 사용하여 Android에서 EditText
에 입력된 키보드를 필요할 때 숨길 수 있습니다. 필요에 따라 적합한 방법을 선택하여 사용하세요.
반응형
'android > UI' 카테고리의 다른 글
[ Android ] Vertual Keytboard - Enter 키, Next 키, Send 키 표시하기 (0) | 2024.08.04 |
---|---|
[ Android ] CheckBox - 박스 색을 변경하기 (0) | 2024.08.04 |
[ Android ] Password 입력창에서 패스워드 숨기고 보이기 (0) | 2024.08.02 |
[ Android ] UI Item에 background 설정하기 (Java/Kotlin) (0) | 2024.08.02 |
[ Android ] 버튼 사용하기 (0) | 2024.07.31 |