반응형
프래그먼트 사용중 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 |