하나의 활동에 PopupWindow가 있습니다. 사용자가 액티비티의 목록 항목을 누르면 사용자로부터 입력을 받기위한 창이 팝업됩니다.사용자가 버튼을 누를 때만 Android 키보드에 입력 키보드가 표시됩니다.
창에 일부 EditText가 있습니다. 또한 일부 텍스트를 미리 설정 한 일부 단추를 제공하므로 사용자가이 단추를 누르면 편집 문구에 입력됩니다.
창을 처음 팝업 할 때 소프트 키 보드를 비활성화 할 수 있습니다. 그러나 edittext (하나의 edittext에서 다른 edittext로 이동)에 초점을 변경하면 키보드가 나타납니다.
사용자가 팝업 창에서 "키보드 표시"버튼을 누를 때만 소프트 키 보드 표시를 원합니다. 어떻게 할 수 있습니까?
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
selectedEditText = (EditText)view;
String text = selectedEditText.getText().toString();
selectedEditText.setSelection(text.length());
InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(selectedEditText.getWindowToken(), 0);
}
}
내가 위의 코드를 시도했지만 여전히 보여주는 :
업데이트.
,하지만 여전히 초점 키보드를 보여주는 변경된 코드가 잘못된 것입니까? – Hanon
@Hanon .. 코드가 정상적으로 보입니다. 디버깅을 시도하고 디버깅을 시도했는지 확인하십시오. – ngesh
결과가 if 본문에 기록되고 본문 부분이 실행되었습니다. 끝에 inputManager.isActive()를 추가했지만 항상 true를 반환합니다. – Hanon