[안드로이드] fragment 키보드(키패드) 내리기

2022. 1. 13. 09:23·앱 개발/Java
반응형

 

프래그먼트 사용중 AlertDialog를 build해서 그 안의 EditText를 입력했다. 여기까진 순조로웠으나 

그 후 키패드가 내려가지 않는 현상이 발생했다. (이해를 돕기 위해 아래 사진 첨부)

 

 

아래의 프래그먼트에서 띄운 AlertDialog에서 추가하기를 눌러도 키패드가 계속 떠있었다.

1. 빈 화면 터치

2. 프래그먼트 화면 전환

을 해봤음에도 해결되지 않았다.

 

 

 

인터넷에 있는 여러 소스코드를 적용시켜 보던 중 하나가 딱 성공했습니다.

 

저는 '추가하기' 버튼을 누르면 바로 지워지길 원해서 Fragment.class안의 유저를 추가하는 함수 안에서 구현했습니다.

 

//fragment 키보드 내리기
InputMethodManager mInputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
mInputMethodManager.hideSoftInputFromWindow(UserName_EditText.getWindowToken(), 0);

 

UserName_EditText에 Focus가 맞춰지는건데 여러분은 키패드가 올라간 EditText에 Focus를 맞춰주시면 됩니다.

제 소스코드에서 UserName_EditText는 [이름:        ] 부분입니다.

 

 

위의 소스코드를 적용한 유저추가 함수 부분입니다. (이해를 돕기위해 첨부합니다)

//fragment 키보드 내리기 부분의 두 줄을 참고해주시면 됩니다.

 

//유저 추가
Button Btn_menuuseradd = (Button) rootView.findViewById(R.id.Btn_menuuseradd);
Btn_menuuseradd.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view){
        LayoutInflater inflater = getLayoutInflater();
        final View dialogView = inflater.inflate(R.layout.user_add_dialog, null);

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); //원래는 안에 getactivity() 대신에 this
        builder.setTitle("새로운 유저 추가");
        builder.setView(dialogView);
        builder.setPositiveButton("추가하기", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                UserName_EditText = (EditText) dialogView.findViewById(R.id.editTextName);
                UserAge_EditText = (EditText) dialogView.findViewById(R.id.editTextAge);
                UserGender_EditText = (EditText) dialogView.findViewById(R.id.editTextGender);
                UserWeight_EditText = (EditText) dialogView.findViewById(R.id.editTextWeight);

                sql = my.getWritableDatabase();
                sql.execSQL("INSERT INTO member VALUES(null,'"
                        + UserName_EditText.getText().toString() + "','"
                        + UserAge_EditText.getText().toString() + "','"
                        + UserGender_EditText.getText().toString() + "','"
                        + UserWeight_EditText.getText().toString() + "');"
                );
                sql.close();

                //fragment 키보드 내리기
                InputMethodManager mInputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                mInputMethodManager.hideSoftInputFromWindow(UserName_EditText.getWindowToken(), 0);



                Toast.makeText(getActivity(), "Save Complete", Toast.LENGTH_SHORT).show();
            }
        });

        AlertDialog dialog = builder.create();

        dialog.show();

    }
});

 

질문은 편하게 댓글 남겨주세요!

 

 

반응형

'앱 개발 > Java' 카테고리의 다른 글

[안드로이드] 블루투스 어플 프로젝트 공유(아두이노 통신)  (3) 2022.02.21
[안드로이드] 프래그먼트에 라이브러리를 이용한 차트 그리기  (0) 2022.01.17
[안드로이드] 레이아웃 배경색 어둡게  (0) 2022.01.03
[안드로이드] 권한 요청 팝업 (한번에 여러개 요청)  (0) 2022.01.03
안드로이드 DB 데이터 csv 파일로 추출  (0) 2021.12.23
'앱 개발/Java' 카테고리의 다른 글
  • [안드로이드] 블루투스 어플 프로젝트 공유(아두이노 통신)
  • [안드로이드] 프래그먼트에 라이브러리를 이용한 차트 그리기
  • [안드로이드] 레이아웃 배경색 어둡게
  • [안드로이드] 권한 요청 팝업 (한번에 여러개 요청)
맨땅
맨땅
다른 개발자분들에게 도움이 되었으면 좋겠습니다
  • 맨땅
    맨땅에 코딩
    맨땅
  • 전체
    오늘
    어제
    • 분류 전체보기 (48)
      • 프로그래밍 지식 (1)
      • 즐거운 웹 개발 (7)
        • Setting (3)
        • 프로그래밍 (1)
        • HTML, CSS (1)
      • 앱 개발 (29)
        • Java (26)
        • Kotlin (0)
        • Setting (2)
        • 프로그래밍 (0)
      • AI (1)
        • Setting2 (0)
        • 프로그래밍 (0)
        • 크롤링 (1)
      • DB (9)
      • ---------------------------.. (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
맨땅
[안드로이드] fragment 키보드(키패드) 내리기
상단으로

티스토리툴바