728x90
안녕하세요
안드로이드 개발을 할때 EditText에 포커스를 두면 키보드가 나타나게 됩니다.
그리고 이 키보드를 숨기려면 기본적으로 일일히 키보드 숨김 버튼을 눌러야 하게끔 되어있습니다.
하지만 사용성 측면에서 키보드 밖 화면을 터치했을 때 키보드가 사라지게끔 하는 기능을 추가하는것이 좋습니다.
오늘은 이 기능을 구현해보도록 하겠습니다.
우선 전체 코드입니다.
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View parentView = findViewById(R.id.parent_view); // ID를 사용하여 부모 뷰 찾기
parentView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hideKeyboard(v);
}
});
}
public void hideKeyboard(View view) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parent_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<EditText
android:id="@+id/et"
android:layout_width="200dp"
android:layout_height="50dp"
/>
</LinearLayout>
우선 부모 뷰에 id값을 할당해줍니다. 여기서는 parent_view 라고 할당했습니다.
그리고 MainActivity에서 hideKeyboard 라는 메서드를 추가해줍니다.
그리고 부모 뷰를 클릭했을때, hideKeyboard 메서드가 호출되도록 구현하면 완료됩니다.
시연 영상입니다.
'안드로이드 자바' 카테고리의 다른 글
[Java][Android] 현재 앱의 버전 정보 표시하기 (0) | 2025.01.26 |
---|---|
[Java][Android] 키 해시(Key Hash) 추출 방법 (0) | 2025.01.23 |
[JAVA][Android] CollapsingToolbarLayout을 활용하여 확장/축소되는 상단바 구현하기 (0) | 2025.01.21 |
[JAVA][Android] AnyChart 로 막대그래프 생성 및 tooltip 활용 (0) | 2025.01.14 |
[Android][JAVA] 접근성 서비스 (Accessibility Service) : 앱에서 이벤트 추적과 자동화 구현하기 (0) | 2025.01.13 |