소프트 키보드를 프로그램 방식으로 표시/숨기는 방법과 관련된 많은 질문이 있습니다.소프트 키보드가 해제되는 것을 방지합니다.
그러나 우리 모두 알고있는 것처럼 안드로이드 뒤로 버튼은 키보드를 닫을 것입니다. 사용자가 뒤로 버튼을 눌러 키보드를 닫지 못하게 할 수 있습니까?
뒤로 버튼을 캡처하려했지만 뒤로 키를 누르면 키보드가 표시되어서 내 활동이 호출되지 않고 소프트 키보드가 표시됩니다.
의견을 보내 주시면 대단히 감사하겠습니다.
소프트 키보드를 프로그램 방식으로 표시/숨기는 방법과 관련된 많은 질문이 있습니다.소프트 키보드가 해제되는 것을 방지합니다.
그러나 우리 모두 알고있는 것처럼 안드로이드 뒤로 버튼은 키보드를 닫을 것입니다. 사용자가 뒤로 버튼을 눌러 키보드를 닫지 못하게 할 수 있습니까?
뒤로 버튼을 캡처하려했지만 뒤로 키를 누르면 키보드가 표시되어서 내 활동이 호출되지 않고 소프트 키보드가 표시됩니다.
의견을 보내 주시면 대단히 감사하겠습니다.
나는 다음과 같은 두 가지 방법을 사용하여 그것을했다 :
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
return super.onKeyDown(keyCode, event);
}
가 작동하지 않음, 키보드가 뒤로 가기 버튼에서 계속 숨김 – htafoya
내가 찾은 솔루션 :
public class KeyBoardHolder extends EditText {
public KeyBoardHolder(Context context) {
super(context);
}
public KeyBoardHolder(Context context, AttributeSet attrs) {
super(context, attrs);
}
public KeyBoardHolder(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public KeyBoardHolder(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return false;
}
}
이 다시 버튼에 의해 폐쇄되는 키보드를 방지 할 수 있습니다.
적당히 반 사용자로 보입니다. 왜 이걸하고 싶어? – Qberticus