ENTER 버튼을 누르면 키보드가 열리지 않게 멈추지 않습니까?
-
20-12-2019 - |
문제
단추 위에 앉아있는 숫자 EditText가있는 활동이 있습니다.
텍스트 편집을 클릭하고 하드 키보드를 사용하여 일부 숫자를 입력 한 다음 하드 입력을 누르면 텍스트 편집 단추 아래 버튼으로 포커스가 이동하고 QWERTY 키보드가 나타납니다.이 일이 일어나지 않도록 어떻게 멈추게합니까?
다음을 사용하여 Enter 키를 제어하려고했습니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activityEnterAmt);
final EditText editText = (EditText) findViewById(R.id.editTextEnterAmt);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
Log.i("Tag", "Enter pressed or IME Action Submit pressed");
saveButtonClick(editText);
}
return false;
}
});
}
.
그러나 Enter 키를 누를 때 키보드를 열지 않도록 정말로 멈추고 싶습니다.왜 이것이이 일을하는지 정말로 이해하지 못합니까?
감사합니다
해결책
EditText가 초점을 잃을 때 소프트 키보드를 닫으면이 문제가 해결되었습니다.
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (v == editText) {
if (hasFocus) {
((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(editText,
InputMethodManager.SHOW_FORCED); // open keyboard
} else {
((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(
editText.getWindowToken(), 0); // close keyboard
}
}
}
});
. 제휴하지 않습니다 StackOverflow