기본 DatePicker에 대한 일부 기능을 추가하기 위해 DatePickerDialog를 사용자 정의하고 있습니다. 예상대로 작동합니다. 그러나 DatepickerDialog의 일, 월, 년 필드는 기본적으로 편집 가능합니다. 그래서 편집 가능한 입력 필드에 초점을 맞춘 경우 소프트 키보드는 기본적으로 열리고 날짜/월/년을 편집 할 수 있으며 사용자가 일/월/년을 편집 할 때 누를 수 있습니다 편집 날짜 설정/취소 DatePickerDialog가 닫히고 기능이 제대로 작동하고 있습니다. 여기 내 문제는 사용자가 일/월/년을 편집 할 때 ans 프레스 편집 날짜를 설정/취소 할 때입니다. DatePickerDialog가 닫히고 softkeyboard가 여전히 열려 있습니다. DatePickerDialog가 해지 되 자마자 닫히지 않습니다. 그래서 나는 다음 코드로 softkeyboard를 숨기려고했다.DatePickerDialog가 화면에서 열려있을 때 softketboard를 숨기는 방법
private DialogInterface.OnDismissListener myOnDismissListener = new DialogInterface.OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
InputMethodManager imm = (InputMethodManager) ((Activity) ctContext)
.getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(this.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
};
하지만 작동하지 않습니다. 그래서 다음 코드로 softkeyboard를 토글하려고했습니다.
private DialogInterface.OnDismissListener myOnDismissListener = new DialogInterface.OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
InputMethodManager imm = (InputMethodManager) ((Activity) ctContext)
.getSystemService(Activity.INPUT_METHOD_SERVICE);
if(imm.isActive())
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
};
그러나 imm.isActive()는 항상 false를 반환합니다. softkeyboard가 열려있을 때 if (imm.isActive())가 작동하는지 여부를 제거하면. 그러나 softkeyboard가 열리지 않고 DatePickerDialog를 열었을 때 화살표로 변경하여 날짜를 설정 또는 취소하면 DatePickerDialog를 닫으면 softkeyboard가 열립니다. 그래서 imm.isActive() 값을 올바르게 가져와야합니다. 그러나 항상 false를 반환합니다.
그래서 어느 정도 소프트 키 보드를 열 었는지 여부를 결정하는 적절한 방법을 알려주십시오.